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
;
18 DPRINT("WM_CREATE (enter).");
20 CreateWindowEx(0, BUTTON_CLASS
, "PushButton", BS_PUSHBUTTON
| WS_CHILD
| WS_VISIBLE
,
21 10, 10, 150, 30, Wnd
, NULL
, AppInstance
, NULL
);
23 CreateWindowEx(0, BUTTON_CLASS
, "DefPushButton", BS_DEFPUSHBUTTON
| WS_CHILD
| WS_VISIBLE
,
24 10, 40, 150, 30, Wnd
, NULL
, AppInstance
, NULL
);
26 CreateWindowEx(0, BUTTON_CLASS
, "AutoRadioButton", BS_AUTORADIOBUTTON
| WS_CHILD
| WS_VISIBLE
,
27 10, 70, 150, 30, Wnd
, NULL
, AppInstance
, NULL
);
29 CreateWindowEx(0, BUTTON_CLASS
, "AutoCheckBox", BS_AUTOCHECKBOX
| WS_CHILD
| WS_VISIBLE
,
30 10, 100, 150, 30, Wnd
, NULL
, AppInstance
, NULL
);
32 DPRINT("WM_CREATE (leave).");
36 LRESULT CALLBACK
TestWndProc(
49 return DefWindowProc(Wnd
, Msg
, wParam
, lParam
);
55 HINSTANCE hPrevInstance
,
62 WNDCLASSEX TestWndClass
= {0};
63 DPRINT("Application starting up.");
64 // Remember instance handle.
65 AppInstance
= GetModuleHandle(NULL
);
66 // Register test window class.
67 TestWndClass
.cbSize
= sizeof(WNDCLASSEX
);
68 TestWndClass
.lpfnWndProc
= &TestWndProc
;
69 TestWndClass
.hInstance
= AppInstance
;
70 TestWndClass
.hCursor
= LoadCursor(0, (LPCTSTR
)IDC_ARROW
);
71 TestWndClass
.hbrBackground
= CreateSolidBrush(RGB(255,255,230));
72 TestWndClass
.lpszClassName
= TEST_WND_CLASS
;
73 Result
= RegisterClassEx(&TestWndClass
);
75 DPRINT("Error registering class.");
76 MessageBox(0, "Error registering test window class.",
77 "Button control test", MB_ICONSTOP
| MB_OK
);
80 // Create main window.
81 DPRINT("Creating main window.");
82 MainWindow
= CreateWindowEx(WS_EX_APPWINDOW
| WS_EX_CLIENTEDGE
,
83 TEST_WND_CLASS
, "Button test",
84 WS_OVERLAPPEDWINDOW
, 50, 50, 180, 365,
85 NULL
, NULL
, AppInstance
, NULL
);
86 if (MainWindow
== 0) {
87 DPRINT("Error creating main window.");
88 UnregisterClass(TEST_WND_CLASS
, AppInstance
);
89 MessageBox(0, "Error creating test window.",
90 "Static control test", MB_ICONSTOP
| MB_OK
);
93 DPRINT("Showing main window.");
94 ShowWindow(MainWindow
, SW_SHOWNORMAL
);
95 UpdateWindow(MainWindow
);
97 DPRINT("Entering message loop.");
98 while (GetMessage(&Msg
, NULL
, 0, 0) > 0) {
99 TranslateMessage(&Msg
);
100 DispatchMessage(&Msg
);
102 // Unregister window class.
103 UnregisterClass(TEST_WND_CLASS
, AppInstance
);