Creer un controle standard API Win32

Résolu
K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016 - 16 févr. 2005 à 14:29
K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016 - 16 févr. 2005 à 15:29
Bojour,
Alors voila, j'essaie de me mettre aux API win32 et la j'ai un petit probleme, lorsque j'affiche un controle dans ma feuille principale, il scintille si je click dessus et sa caption disparait.
voila le code que j'ai utilisé pour la WindowProc, la WinMain est celle par defaut de DevCpp:

#define BUTTON1 1 //je n'ai pas su si ces chiffres etaient importants
#define EDIT1 2

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_COMMAND:
switch(LOWORD(wParam))
{
case BUTTON1:
SetDlgItemText(hwnd,EDIT1,"Does it work ??");
break;
}
case WM_CREATE:
CreateWindow("BUTTON","",WS_CHILD | WS_VISIBLE | WS_BORDER,10,10,100,30,hwnd,HMENU(BUTTON1),MainInstance,NULL);
SetDlgItemText(hwnd,BUTTON1,"HELLO");
CreateWindow("EDIT","",WS_CHILD | WS_VISIBLE | WS_BORDER,10,50,100,30,hwnd,HMENU(EDIT1),MainInstance,NULL);
break;
case WM_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}

return 0;
}

si cette portion de code est insufisante, dites le moi, merci.

K@zuya

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
16 févr. 2005 à 15:10
il manque un break à la fin du case WM_COMMAND (celui qui est là est celui du switch(LOWORD(wParam)). Du coup, à chaque commande, WM_CREATE est exécuté et tu recrée des contrôles.
3
K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016
16 févr. 2005 à 15:29
Ah, je suis vraiment idiot, pourquoi n'y ais-je pas pensé avant !!!!

K@zuya
0
Rejoignez-nous