Fenetre qui bloque [Résolu]

jlg75 29 Messages postés lundi 17 décembre 2001Date d'inscription 7 janvier 2012 Dernière intervention - 27 juin 2011 à 08:20 - Dernière réponse : jlg75 29 Messages postés lundi 17 décembre 2001Date d'inscription 7 janvier 2012 Dernière intervention
- 1 juil. 2011 à 18:24
Bonjour,

J'ai créé une fenêtre principale + une fenetre fille de type "static control" destinée à faire du dessin (avec appli de base W32 sur Codeblocks, utilisant CreateWindowsEx). Problème: la fenêtre se fige a peu près au bout d'une minute et lorsque l'on redimensionne en tirant les bords, mais la souris reste active. Au pire la fenêtre fille apparait parfois toute seule et vérole le bureau si l'on redimensionne trop violemment! Il faut fermer avec le gestionnaire des tâches. Quelqu'un a t-il rencontré un pb similaire?

A+
Afficher la suite 

4 réponses

Répondre au sujet
cs_patatalo 1466 Messages postés vendredi 2 janvier 2004Date d'inscription 14 février 2014 Dernière intervention - 28 juin 2011 à 02:16
+3
Utile
salut,

Peut-être la file de messages qui n'est pas vidée correctement.

@++
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_patatalo
jlg75 29 Messages postés lundi 17 décembre 2001Date d'inscription 7 janvier 2012 Dernière intervention - 29 juin 2011 à 00:56
0
Utile
Oui, je soupçonne un pb de ce genre sans vraiment comprendre vu mon niveau débutant en API/C++. J'ai remonté les blocs de code 1 par 1 et ça semble OK, je ne sais pas pourquoi. Juste une remarque: selon les exemples qu'on trouve, le hwnd et le hinstance sont déclarés parfois en global, d'autres fois ds le winmain. g mis le hinstance en global mais je ne pense pas que le pb venait de là.
A+
Commenter la réponse de jlg75
cs_LA_Tupac 305 Messages postés jeudi 29 avril 2004Date d'inscription 18 janvier 2012 Dernière intervention - 1 juil. 2011 à 09:57
0
Utile
Non il n'y a pas de raison que déclarer le HWND en Winmain pose problème ... Par contre tu gère les messages WM_RESIZE ?? il semblerait qu'il y'ai un lien ....
Commenter la réponse de cs_LA_Tupac
jlg75 29 Messages postés lundi 17 décembre 2001Date d'inscription 7 janvier 2012 Dernière intervention - 1 juil. 2011 à 18:24
0
Utile
Voici le bout de code gerant les messages de création et dimensionnement

switch (message) // gestion des messages
{
case WM_CREATE:
hBarreEtat=GenStatusBar(hwnd); // statusbar
hBarreStd=GenBarreStandard(hwnd); // barre standard
hBarreDes=GenBarreDessin(hwnd); // barre choix fonctions dessin

hGraphic=GenGraphic(hwnd,colFond); // zone graphique ( on dessine sur son HDC)
//repCentre.Tracer(hGraphic,100,100);
break;

case WM_SIZE: // régénère les fenetres et barres
largeur=LOWORD(lParam);
hauteur=HIWORD(lParam);
GetClientRect(hwnd, &rectClient);

MoveWindow(hGraphic, rectClient.left+10, rectClient.top+70, largeur-20, hauteur-100, TRUE);
MoveWindow(hBarreEtat, rectClient.left, rectClient.bottom-30, largeur, 30, TRUE);
MoveWindow(hBarreStd, 5, 0, 340, 60, TRUE);
MoveWindow(hBarreDes, 350, 0, 500, 60, TRUE);

GetWindowRect(hGraphic,&rectGraphic);

ShowWindow(hBarreStd, SW_SHOW);
ShowWindow(hBarreDes, SW_SHOW);
ShowWindow(hGraphic, SW_SHOW);
break;

case WM_CLOSE:
if (MessageBox(hwnd, "Voulez vous vraiment quitter?", nomAppli, MB_YESNO | MB_ICONQUESTION )==IDYES)
{
DestroyWindow(hwnd);
PostQuitMessage(0);
}
break;
Commenter la réponse de jlg75

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.