Bonjour,
j'ai un problème avec la fonction Win32 DestroyWindow()
Voici mon problème dans les grandes lignes :
J'ai créé deux fenêtres avec CreateWindowExW et je souhaite supprimer la première car
elle ne m'est plus d'aucune utilité.
Je fais donc DestroyWindow(hWin1) et il me détruit la deuxième aussi...
Voici des extraits de mon code (c'est du C openGL avec wgl seulement) :
ma Window Class a les styles suivants
Ma première fenêtre vide et non-affichée est créée comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UI_windowClass.style = CS_HREDRAW | CS_VREDRAW;
Ensuite, avant de créer la deuxième fenêtre, je détruis la première :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 UI_hDummy = CreateWindowExW( (WS_EX_APPWINDOW), L"UI_WindowClass",L"", (WS_TILEDWINDOW),20,40, 40,40, (HWND) 0,0, GetModuleHandleW(0),0);
Puis je crée la seconde :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DestroyWindow(hWin); // hWin = UI_hDummy
Je crée la scène OpenGL et le rendu se fait deux ou trois fois puis la fenêtre se
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 UI_hWindow = CreateWindowExW( (WS_EX_APPWINDOW|WS_EX_ACCEPTFILES), L"UI_WindowClass",L"", (WS_TILEDWINDOW|WS_VSCROLL),20,40, (int) (scaleXY * 640),(int) (scaleXY * 480), (HWND) parentwindowhwnd,0, GetModuleHandleW(0),0); ShowWindow(UI_hWindow, SW_SHOW); UpdateWindow(UI_hWindow);
ferme du fait du DestroyWindow.
Si je fais sans DestroyWindow tout se passe bien, mais
j'aimerais comprendre pourquoi la deuxième fenêtre se ferme alors
qu'elle n'existait même pas avant le DestroyWindow ?
edit : pour info, c'est une application console qui lance une fenêtre OpenGL (en fait deux).
Partager