rendre une page invisible : tout bête mais j'y arrive pas ! [VC++] - Programmation
Marsh Posté le 08-12-2001 à 16:14:51
Salut,
Il faut utiliser CWnd::ShowWindow(SW_HIDE)
Marsh Posté le 08-12-2001 à 16:22:48
et le terme form c reserver a vb (juste comme ca au passage)
Marsh Posté le 08-12-2001 à 17:12:41
non : Delphi et C++Builder utilisent aussi le terme "form"
Marsh Posté le 08-12-2001 à 17:22:15
oui avec leur framework... mais en C/C++ sans rien de special c des boites de dialog ou des fenetre
Marsh Posté le 08-12-2001 à 18:52:11
CWnd::ShowWindow(SW_HIDE) ne marche pas lors de l'init dialog.
Quand à mettre un timer pour le lancer qq ms plus tard.... c'est lourd....
y'a pas un moyen simple ?
Marsh Posté le 08-12-2001 à 19:10:05
c'est du C mais p'tet que ca t'aideras:
http://www.winprog.org/tutorial/modeless_dialogs.html
c'est une fenetre toute simple qui controle si une dialogue est visible ou pas
mais c'est bizarre ... il semble que ce soit bien ShowWindow(g_hToolbar, SW_HIDE) qu'il faille utiliser ...
Marsh Posté le 08-12-2001 à 20:35:24
ok....mais c'est pareil, ça marche pas pendant le InitDialog....
z'avez pas une idée ? une dialog peut pas être invisible "par défaut" ?
Marsh Posté le 08-12-2001 à 20:48:42
tu veux la créer en la gardant cachée, c'est ca ?
j'y pense, pendant le InitDialog, c'est quoi ?
c'est pendant sa création ? = elle est pas encore créée donc elle peut pas être invisible ... ?
Marsh Posté le 08-12-2001 à 23:39:41
voilà, mon application se sert des MFC, donc je dois passer par ça mais le problème c'est que lors de la création j'arrive pas à avoir une dialog directment invisible ...
Marsh Posté le 08-12-2001 à 23:52:08
Et justement c'est pas la le pblm ?
=> tu veux le rendre invisible pendant sa creation = pendant qu'il n'existe pas !
essai de gerer l'evenement OnActivate ou un truc comme ca plutot ...
t'as qu'a tester avec OnPaint pour voire deja si ca marche
si ca marche (il reste caché), alors on sera fixé.
sinon c'est vrai que c'est bizarre qu'il soit visible malgré avoir decoché visible
Marsh Posté le 09-12-2001 à 00:11:42
Ta boite de dlg, c'est une boite modale (cree par DoModal()) ? Si oui, y'a pas moyen de la rendre invisible, faut en creer une modale.
La fonction recherche de ce forum aurait pu te donner la reponse
http://forum.hardware.fr/forum2.ph [...] &owntopic=
Marsh Posté le 09-12-2001 à 02:35:58
un pote qui fait pas mal de gui a eu le même problème. il a regardé comment faisaient les autres applics : déplacement de la fenêtre loin, comme (-10000, -10000).
pas beau, mais ça marche.
Marsh Posté le 10-12-2001 à 16:23:03
En C basique (pas ++), si on fait
int WINAPI WinMain()
{
MSG msg;
if (InitApplication(hInstance) == 0) return FALSE;
/* Perform initializations that apply to a specific instance */
if (InitInstance(hInstance, nCmdShow) == FALSE) return FALSE;
ShowWindow(hWnd, SW_HIDE); // Cache the window
la feuille (form), on la voit pas. Faut prévoir un évènement pour la visualiser (si besoin d'afficher, pas obligatoire).
Pas sûr ça marche en C++ (ai commencé bouquin hier soir => pas encore opérationnel ).
Marsh Posté le 10-12-2001 à 16:33:50
j'avais deja posté une question comme ca sur ce meme forum ..
il faut creer ta fenetre en modeless et dans le oninitinstance .. mettre AfxRun();
Marsh Posté le 10-12-2001 à 16:36:25
voilà 2 trucs qui pourront etre utile :
http://forum.hardware.fr/forum1.ph [...] aterange=2
Marsh Posté le 08-12-2001 à 16:00:06
Sous VC++6.0 + MFC dialog based app.
j'arrive pas à ce que mon projet sous "invisible". Même en décochant toutes les cases "visible", la form est déssinée !
aidez moi svp ...
Kyle