1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
|
#define _WIN32_WINNT 0x0600
#define _WIN32_IE 0x900
#include <windows.h>
#include <commctrl.h>
#define IDC_BUTTON_1 101
#define IDC_BUTTON_2 102
const char g_ClassName[] = "windowClass";
LRESULT CALLBACK MainWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch(uMsg) {
case WM_CREATE: {
HWND hwndButton1 = CreateWindowEx(NULL,
"BUTTON",
"Click Me",
WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON | BS_TEXT,
50, 220, 100, 24,
hwnd,
(HMENU)IDC_BUTTON_1,
GetModuleHandle(NULL),
NULL);
if (hwndButton1 == NULL) {
MessageBox(NULL, "FAILURE Creating button 1", "ERROR!", MB_OK | MB_ICONWARNING);
return 0;
}
HWND hwndButton2 = CreateWindowEx(NULL,
"BUTTON",
"Click Me 2",
WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON | BS_TEXT,
200, 220, 100, 24,
hwnd,
(HMENU)IDC_BUTTON_2,
GetModuleHandle(NULL),
NULL);
if (hwndButton2 == NULL) {
MessageBox(NULL, "FAILURE Creating button 2", "ERROR!", MB_OK | MB_ICONWARNING);
return 0;
}
}
break;
case WM_COMMAND:
switch(LOWORD(wParam)) {
case IDC_BUTTON_1:
MessageBox(hwnd, "You clicked button 1!", "Button Clicked!", MB_OK | MB_ICONINFORMATION);
break;
case IDC_BUTTON_2:
MessageBox(hwnd, "You clicked button 2!", "Button Clicked!", MB_OK | MB_ICONINFORMATION);
break;
}
break;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow) {
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_STANDARD_CLASSES;
InitCommonControlsEx(&icex);
HWND hwndMain;
WNDCLASSEX wc;
MSG Msg;
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = MainWindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_WINLOGO);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszMenuName = NULL;
wc.lpszClassName = g_ClassName;
wc.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
if (!RegisterClassEx(&wc)) {
MessageBox(NULL, "Failed to register window class!", "ERROR!", MB_OK | MB_ICONWARNING);
return 0;
}
hwndMain = CreateWindowEx(
WS_EX_CLIENTEDGE,
g_ClassName,
"Controls Test",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 500, 500,
NULL, NULL, hInstance, NULL);
if (hwndMain == NULL) {
MessageBox(NULL, "Failed to create window!", "ERROR!", MB_OK | MB_ICONWARNING);
return 0;
}
ShowWindow(hwndMain, nCmdShow);
UpdateWindow(hwndMain);
while (GetMessage(&Msg, NULL, 0, 0) > 0) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
}
|