docmaboul |
C'est tout simple.
Tu déclares la variable globale HWND hWndButton=NULL; et dans ta boucle de messages, tu ajoutes le code suivant :
Code :
- case WM_CREATE:
- hWndButton=CreateWindow("BUTTON", "Mon joli button", WS_CHILD|WS_VISIBLE|WS_TABSTOP, 10, 10, 130, 22, hWnd, NULL, hInst, NULL);
- if ( !hWndButton ) {/* error */}
- break;
|
Sans oublier dans le case WM_CLOSE de détruire la fenêtre du bouton.
Tu vas voir que c'est assez moche. Pour enjoliver un peu le tout, il faut utiliser une police de caractères. Tu déclares donc une variable globale HFONT hFont=NULL; et la fonction suivante :
Code :
- void CreateButtonFont()
- {
- LOGFONT lf;
- memset(&lf, 0, sizeof(LOGFONT));
- strcpy(lf.lfFaceName, "Arial" );
- lf.lfHeight=-11;
- lf.lfWeight=FW_NORMAL;
- lf.lfOutPrecision=OUT_STROKE_PRECIS;
- lf.lfClipPrecision=CLIP_STROKE_PRECIS;
- lf.lfQuality=DRAFT_QUALITY;
- lf.lfPitchAndFamily=VARIABLE_PITCH|FF_SWISS;
- hFont=CreateFontIndirect(&lf);
- }
|
Et tu transformes le case WM_CREATE ainsi
Code :
- hWndButton=CreateWindow("BUTTON", "Mon joli button", WS_CHILD|WS_VISIBLE|WS_TABSTOP, 10, 10, 90, 22, hWnd, NULL, hInst, NULL);
- /* histoire de faire joli */
- CreateButtonFont();
- if ( !hWndButton || !hFont ) MessageBox(hWnd, "No more ressources", "Error", MB_OK|MB_ICONEXCLAMATION);
- if ( hFont ) SendMessage(hWndButton, WM_SETFONT, (WPARAM)hFont, TRUE);
|
Sans oublier de détruire la police dans le WM_CLOSE avec :
Code :
- if ( hFont ) {DeleteObject(hFont); hFont=NULL;}
|
|