1 /* Based on Radoslaw Sokol's static control test. */
4 static LPSTR BUTTON_CLASS = "BUTTON";
5 static LPSTR TEST_WND_CLASS = "TESTWND";
8 #define DPRINT(s) (void)0
10 #define DPRINT(s) OutputDebugStringA("BUTTONTEST: " s "\n")
13 HINSTANCE AppInstance = NULL;
19 DPRINT("WM_CREATE (enter).");
21 CreateWindowEx(0, BUTTON_CLASS, "PushButton", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE,
22 10, 10, 150, 30, Wnd, NULL, AppInstance, NULL);
24 CreateWindowEx(0, BUTTON_CLASS, "DefPushButton", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE,
25 10, 40, 150, 30, Wnd, NULL, AppInstance, NULL);
27 CreateWindowEx(0, BUTTON_CLASS, "AutoRadioButton", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE,
28 10, 70, 150, 30, Wnd, NULL, AppInstance, NULL);
30 CreateWindowEx(0, BUTTON_CLASS, "AutoCheckBox", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE,
31 10, 100, 150, 30, Wnd, NULL, AppInstance, NULL);
33 DPRINT("WM_CREATE (leave).");
37 LRESULT CALLBACK TestWndProc(
50 return DefWindowProc(Wnd, Msg, wParam, lParam);
56 HINSTANCE hPrevInstance,
63 WNDCLASSEX TestWndClass = {0};
64 DPRINT("Application starting up.");
65 // Remember instance handle.
66 AppInstance = GetModuleHandle(NULL);
67 // Register test window class.
68 TestWndClass.cbSize = sizeof(WNDCLASSEX);
69 TestWndClass.lpfnWndProc = &TestWndProc;
70 TestWndClass.hInstance = AppInstance;
71 TestWndClass.hCursor = LoadCursor(0, IDC_ARROW);
72 TestWndClass.hbrBackground = CreateSolidBrush(RGB(255,255,230));
73 TestWndClass.lpszClassName = TEST_WND_CLASS;
74 Result = RegisterClassEx(&TestWndClass);
76 DPRINT("Error registering class.");
77 MessageBox(0, "Error registering test window class.",
78 "Button control test", MB_ICONSTOP | MB_OK);
81 // Create main window.
82 DPRINT("Creating main window.");
83 MainWindow = CreateWindowEx(WS_EX_APPWINDOW | WS_EX_CLIENTEDGE,
84 TEST_WND_CLASS, "Button test",
85 WS_OVERLAPPEDWINDOW, 50, 50, 180, 365,
86 NULL, NULL, AppInstance, NULL);
87 if (MainWindow == 0) {
88 DPRINT("Error creating main window.");
89 UnregisterClass(TEST_WND_CLASS, AppInstance);
90 MessageBox(0, "Error creating test window.",
91 "Static control test", MB_ICONSTOP | MB_OK);
94 DPRINT("Showing main window.");
95 ShowWindow(MainWindow, SW_SHOWNORMAL);
96 UpdateWindow(MainWindow);
98 DPRINT("Entering message loop.");
99 while (GetMessage(&Msg, NULL, 0, 0) > 0) {
100 TranslateMessage(&Msg);
101 DispatchMessage(&Msg);
103 // Unregister window class.
104 UnregisterClass(TEST_WND_CLASS, AppInstance);