Hello tout le monde!
je voudrais mettre un bouton dans une fenetre (ca c'est facile), mais seulement quand on clique dessus un autre fenetre s'ouvre, avec dans ce cas une aide, mais ca serait aussi pour , par exemple, choisir parmis une liste d'options, etc.
comment faire? j'ai tt essaye, ms rien a faire ca veut pas.Bouh!!
merci d'avance. au cas où, voila ma source(c'est pas l'originale et elle est TRES brouillon(je l'ai faite rapidos juste pour ce msg), mais c'est pour l'exemple)
Faut pas faire attention aux commentaires, c'est pas moi qui les ai mis, une grande partie de la source vient d' src telechargée.
BB
/////////////////////////////////////////////////////////////////////
#include <windows.h>
#define ID_BUTTON 100
HWND WindowHandle;
HWND WindowHandle;
HINSTANCE _hInstance;
HINSTANCE _hInstance2;
const char WinClassName[] = "MyWindowClass";
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE PrevInstance, LPSTR CmdLine, int CmdShow)
{
MSG message;
WNDCLASSEX wc;
_hInstance = hInstance;
wc.hInstance = _hInstance; /* Instance du programme */
wc.lpszClassName = WinClassName; /* Nom de la classe */
wc.lpfnWndProc = WindowProcedure; /* Adresse de la procédure qui va recevoir les messages */
wc.style = CS_DBLCLKS; /* Styles! */
wc.cbSize = sizeof(WNDCLASSEX); /* Taille de la classe(ou struct) */
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); /* Grande icône */
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); /* Petite icône */
wc.hCursor = LoadCursor(NULL, IDC_ARROW); /* Curseur */
wc.lpszMenuName = NULL; /* Menu */
wc.cbClsExtra = 0; /* Optionnel */
wc.cbWndExtra = 0; /* Optionnel */
wc.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH); /* Couleur de fond de la fenêtre */
if (!RegisterClassEx(&wc))
return 0;
WindowHandle = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, WinClassName, "Ma première fenêtre!!!",\
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 200, 200, HWND_DESKTOP, NULL, _hInstance,\
NULL);
if (WindowHandle == NULL)
return 0;
HWND cmdhWnd = CreateWindowEx(0, "BUTTON", "", WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON|BS_NOTIFY|BS_TEXT,
30, 30, 150, 80, WindowHandle, (HMENU)ID_BUTTON, hInstance, NULL);
ShowWindow(WindowHandle, SW_SHOW);
UpdateWindow(WindowHandle);
SetWindowText(cmdhWnd, "Ceci est un Bouton!");
UpdateWindow(cmdhWnd);
SetFocus(cmdhWnd);
while (GetMessage(&message, NULL, 0, 0))
{ TranslateMessage(&message);
DispatchMessage(&message);}
return message.wParam;
}
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_DESTROY:
DestroyWindow(hwnd);
break;
case WM_COMMAND:
if ((LOWORD(wParam) == ID_BUTTON) && (HIWORD(wParam) == BN_CLICKED))
{
HWND cmdhWnd2 = CreateWindowEx(0, "BUTTON", "", WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON|BS_NOTIFY|BS_TEXT,30, 30, 150, 80, WindowHandle2, (HMENU)ID_BUTTON, hInstance, NULL);
ShowWindow(WindowHandle, SW_SHOW);
UpdateWindow(WindowHandle);
}
break;
case WM_CLOSE:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam); /* Ne pas effacer */
break; /* Quitte le switch(important) */
}
return 0;
}