Vister26 Temat założony przez niniejszego użytkownika |
[WinAPI] Brak możliości zaznaczenia checkbox-ów » 2014-07-02 13:26:48 Napisałem program, który ma stworzyć okno, kilka buttonów i sprawdzać, czy są wciśnięte niektóre z nich. Oto najważniejsza część kodu: HWND g_hButton, g_hCheckbox1, g_hCheckbox2, g_hGroupbox1, g_hGroupbox2, g_hRadio1, g_hRadio2, g_hRadio3;
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { g_hGroupbox1 = CreateWindowEx( 0, "BUTTON", "pierwsza grupa", WS_CHILD | WS_VISIBLE | BS_GROUPBOX, 20, 10, 250, 85, hWnd, NULL, hInstance, NULL ); g_hGroupbox2 = CreateWindowEx( 0, "BUTTON", "deuga grupa", WS_CHILD | WS_VISIBLE | BS_GROUPBOX, 20, 100, 250, 115, hWnd, NULL, hInstance, NULL ); g_hCheckbox1 = CreateWindowEx( 0, "BUTTON", "checkbox1", WS_CHILD | WS_VISIBLE | BS_CHECKBOX, 10, 20, 150, 30, g_hGroupbox1, NULL, hInstance, NULL ); g_hCheckbox2 = CreateWindowEx( 0, "BUTTON", "checkbox2", WS_CHILD | WS_VISIBLE | BS_CHECKBOX, 10, 50, 150, 30, g_hGroupbox1, NULL, hInstance, NULL ); g_hRadio1 = CreateWindowEx( 0, "BUTTON", "radio1", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, 10, 20, 150, 30, g_hGroupbox2, NULL, hInstance, NULL ); g_hRadio2 = CreateWindowEx( 0, "BUTTON", "radio2", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, 10, 50, 150, 30, g_hGroupbox2, NULL, hInstance, NULL ); g_hRadio3 = CreateWindowEx( 0, "BUTTON", "radio3", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, 10, 80, 150, 30, g_hGroupbox2, NULL, hInstance, NULL ); g_hButton = CreateWindowEx( 0, "BUTTON", "Gotowe!!", WS_CHILD | WS_VISIBLE, 65, 220, 150, 30, hWnd, NULL, hInstance, NULL ); }
LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch( msg ) { case WM_COMMAND: if(( HWND ) lParam == g_hCheckbox1 ) MessageBox( hWnd, "zaznaczyles checkbox", "checkbox1", MB_ICONINFORMATION ); if(( HWND ) lParam == g_hButton ) MessageBox( hWnd, "nacisnales przycisk", "button", MB_ICONINFORMATION ); default: return DefWindowProc( hWnd, msg, wParam, lParam ); } return 0; }
Zdarzenie z przyciskiem działa normalnie natomiast checkbox nie generuje WM_COMMAND i nie pojawia się przy nim "fajka". Dodatkowo, jeśli zmienie mu okno rodzicielskie na hWnd to już generuje WM_COMMAND, ale nadal nie ma "fajki". |