Bonjour!
Le programme ci-dessous crée et affiche une fenêtre simple. Ce que je souhaite faire, c'est rajouter un Bouton à cette fenêtre.
Ce qui ne joue pas, c'est que le bouton que j'ai crée est en lui même une fenêtre!!
Comment faire pour obtenir un bouton Push plus ou moins valable
Voici le code :
#include <windows.h>
#include <windowsx.h>
#include <stdio.h>
#include "Impl_Log_class.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd);
LRESULT CALLBACK WinProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
bool stop = false;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
// Création de l'application
// Création de la fenêtre :
HWND hFenetre; //Hundle contenant l'objet Fenêtre
HWND hBouton;
MSG MessagesAEnvoyer; // envoyée à WinProc après événement
MSG MessagesBouton;
WNDCLASS Fenetre;
Fenetre.lpszMenuName =NULL; // Pas de Menu
Fenetre.cbClsExtra =0;
Fenetre.cbWndExtra =0;
Fenetre.hInstance = hInstance;
Fenetre.lpfnWndProc = WinProc; // Les Msg seront envoyée à WinProc
Fenetre.lpszClassName = "Dialog_box";
Fenetre.style = CS_VREDRAW | CS_HREDRAW;
Fenetre.hbrBackground = (HBRUSH) GetStockObject(GRAY_BRUSH);
Fenetre.hIcon =(HICON) LoadIcon(hInstance, IDI_APPLICATION);
Fenetre.hCursor =(HCURSOR) LoadCursor(hInstance, IDC_ARROW);
RegisterClass(&Fenetre);
hFenetre = CreateWindow("Dialog_box", "DIALOG BOX", WS_OVERLAPPEDWINDOW, 200, 200, 600, 400, NULL, NULL, hInstance, NULL);
hBouton = CreateWindow("Button", NULL, BS_PUSHBUTTON,250,250,100,100,NULL,NULL,NULL,NULL);
ShowWindow(hFenetre,nShowCmd);
ShowWindow(hBouton,nShowCmd);
// Création du bouton
// Boucle d'attente des messages
while (!stop)
{
GetMessage(&MessagesAEnvoyer, hFenetre, 0, 0);
TranslateMessage (&MessagesAEnvoyer);
DispatchMessage (&MessagesAEnvoyer);
GetMessage(&MessagesBouton, hBouton, 0, 0);
//SendMessage(hBouton, BM_SETSTATE,100,100);
TranslateMessage (&MessagesBouton);
DispatchMessage (&MessagesBouton);
}
return 0; //indique la fin de la tâche
}
LRESULT CALLBACK WinProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_DESTROY:
{
stop = true ;
PostQuitMessage(0);
return 0;
}
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
En vous remerçiant à l'avance!!!
haffa