Bonjour,
Je développe sous Visual Studio 2010 une petite application Win32 qui me permet de faire une vérification des pré-requis sur le système avant l'installation d'une autre application. Durant ces vérifications s'affiche à l'écran uniquement une boite de dialogue contenant un "Text Control" et une "ProgressBar" mis à jour au fur et à mesure.
J'ai codé à l'origine sous Windows Seven x64. Mon appli tourne très bien sur mon poste, ainsi que sur un autre seven x86, par contre impossible de le faire tourner sur un XP.
Voilà un morceau de mon code qui sera, je pense, utile pour résoudre mon problème.
Voilà le Main qui crée ma fenêtre.
Et voilà ma fonction callback qui gère mes évènements:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { hInst = hInstance; DialogBox(hInst, MAKEINTRESOURCE(IDD_CONTROLS_DLG), hWnd, reinterpret_cast<DLGPROC>(DlgProc)); return TRUE; }
J'ai donc lancé le debug sur la machine XP, et j'ai remarqué qu'il y avait un soucis au niveau des évènements dans la fonction callback. En effet sous XP il lance un évènement WM_SETFONT puis directement l'évènement WM_DESTROY. Il ne crée donc pas ma boîte de dialogue, et ne passe donc pas dans l'évènement WM_PAINT que j'utilise.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 LRESULT CALLBACK DlgProc(HWND hWndDlg, UINT Msg, WPARAM wParam, LPARAM lParam) { switch(Msg) { case WM_PAINT: //Code paint return TRUE; } return FALSE; }
Je suis vraiment bloqué sur ce problème.
Merci d'avance pour votre aide.
Partager