Cacher une fenêtre lorsqu'elle s'affiche

CyberP Messages postés 283 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 4 juillet 2007 - 15 mai 2004 à 14:43
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 15 mai 2004 à 22:15
Est-ce normal que ceci :

BOOL CALLBACK MainProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
switch(message) {
case WM_INITDIALOG:{
ShowWindow(hWnd, SW_HIDE);
etc...


ne marche pas ?

Là j'ai un peu modifié le script, normalement la fenêtre devrait se cacher que dans certains cas et puis je souhaiterais récupérer des messages de sockets (donc je ne peux pas différer l'ouverture de la fenêtre)

CyberP,
Celui qui dit que toute question a une réponse

11 réponses

CyberP Messages postés 283 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 4 juillet 2007 2
15 mai 2004 à 14:47
J'ai oublié de préciser, ce n'est pas une erreur de synthaxe mais c'est bien la fenêtre qui ne se cache pas

J'arrive bien à la cacher de la même façon quand on clique sur un bouton mais pas dans le INITDIALOG (et si je met un messagebox la ligne en dessous le messagebox s'affiche)

CyberP,
Celui qui dit que toute question a une réponse
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 mai 2004 à 15:51
#define PERSO_HIDE (WM_USER+1)

switch(message) {
case WM_INITDIALOG:
....
....
// EN DERNIER
PostMessage(hWnd, PERSO_HIDE, 0, 0);
return 1;
case PERSO_HIDE:
ShowWindow(hWnd, SW_HIDE);
return 0;
case ....:

Essaie cela, tu diras si ne va pas auquel cas je testerai.

ciao...
BruNews, Admin CS, MVP Visual C++
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 mai 2004 à 17:12
bah non ton truc ne marche pas, c'est bizarre...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 mai 2004 à 17:15
on peut mettre le ShowWindow dans WM_CTLCOLORDLG et la ca marche
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 mai 2004 à 17:19
ah bon, je vais donc tester, A++

ciao...
BruNews, Admin CS, MVP Visual C++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 mai 2004 à 17:29
OHE du bateau, je viens de perdre 5 minutes pour rien a faire un prog qui tourne exact comme prevu.
Pas une ligne a modifier a ce que j'avais mis. Je precise que ma dlgbox a bien le style visible de mis et j'ai du fermer avec taskmanager car est devenue illico invisible.

ciao...
BruNews, Admin CS, MVP Visual C++
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 mai 2004 à 17:33
forcément, moi le style visible était false (c'est le style par défaut)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 mai 2004 à 17:36
Faut toujours mettre a TRUE !!!
Laisse les defauts a ceux qui en ont...

ciao...
BruNews, Admin CS, MVP Visual C++
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 mai 2004 à 18:44
D'accord. Cependant il y a un truc que ne comprends pas dans ta méthode: tu mets un PostMessage; qu'est ce qui assure que le message PERSO_HIDE n'est pas traité avant qu'on ait fini WM_INITDIALOG (même si c'est la dernière instruction)?
0
CyberP Messages postés 283 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 4 juillet 2007 2
15 mai 2004 à 22:02
Merci, la méthode de brunews fonctionne chez moi (même si ça fait un petit flash dû à la lenteur de mon pc)

CyberP,
Celui qui dit que toute question a une réponse
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 mai 2004 à 22:15
vecchio56> PostMessage est async, ne fait qu'empiler 4 params et retourne illico sans attendre le traitement. Comme c'est dans le meme thread, tu es assure de finir ce que tu as en cours avant de traiter le prochain message de la pile.

ciao...
BruNews, Admin CS, MVP Visual C++
0
Rejoignez-nous