1 #pragma comment(linker,"\"/manifestdependency:type='win32' \
\r
2 name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
\r
3 processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
\r
6 #include <CommCtrl.h>
\r
11 const char g_szClassName[] = "MyWindowClass";
\r
14 WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
\r
18 DestroyWindow(hwnd);
\r
24 if (HIWORD(wParam) == BN_CLICKED) {
\r
25 if ((HWND)lParam == hwndButton1) {
\r
26 SendMessage(hwndList1, LB_ADDSTRING, 0, (LPARAM)"Hello");
\r
33 return DefWindowProc(hwnd, msg, wParam, lParam);
\r
39 WinMain(HINSTANCE hInstance,
\r
40 HINSTANCE hPrevInstance,
\r
48 // Step 1: Registering the Window Class
\r
49 wc.cbSize = sizeof(WNDCLASSEX);
\r
51 wc.lpfnWndProc = WndProc;
\r
54 wc.hInstance = hInstance;
\r
55 wc.hIcon = LoadIcon(nullptr, IDI_APPLICATION);
\r
56 wc.hCursor = LoadCursor(nullptr, IDC_ARROW);
\r
57 wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
\r
58 wc.lpszMenuName = nullptr;
\r
59 wc.lpszClassName = g_szClassName;
\r
60 wc.hIconSm = LoadIcon(nullptr, IDI_APPLICATION);
\r
63 if (!RegisterClassEx(&wc)) {
\r
65 "Window Registration Failed!",
\r
67 MB_ICONEXCLAMATION | MB_OK);
\r
71 // Step 2: Creating the Window
\r
72 hwnd = CreateWindowA(g_szClassName,
\r
73 "The title of my window",
\r
74 WS_OVERLAPPEDWINDOW,
\r
84 HWND tab = CreateWindowExA(0, WC_TABCONTROLA, "", WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS, 10, 10, 300, 300, hwnd, nullptr, nullptr, nullptr);
\r
85 hwndButton1 = CreateWindowExA(0, WC_BUTTONA, "OK", WS_VISIBLE | WS_CHILD, 10, 10, 100, 100, tab, nullptr, nullptr, nullptr);
\r
86 hwndList1 = CreateWindowExA(0, WC_LISTBOXA, "OK", WS_VISIBLE | WS_CHILD | WS_BORDER | WS_VSCROLL, 110, 10, 100, 100, tab, nullptr, nullptr, nullptr);
\r
89 tie.mask = TCIF_TEXT;
\r
90 tie.pszText = "Hallo";
\r
91 TabCtrl_InsertItem(tab, 0, &tie);
\r
92 tie.mask = TCIF_TEXT;
\r
93 tie.pszText = "Ciao";
\r
94 TabCtrl_InsertItem(tab, 1, &tie);
\r
96 if (hwnd == nullptr) {
\r
98 nullptr, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK);
\r
102 ShowWindow(hwnd, nCmdShow);
\r
104 UpdateWindow(hwnd);
\r
106 EnumChildWindows(hwnd, [](HWND hwnd, LPARAM lParam) -> BOOL {
\r
107 HFONT guiFont = (HFONT) GetStockObject(DEFAULT_GUI_FONT);
\r
108 SendMessage(hwnd, WM_SETFONT, (WPARAM)guiFont, MAKELPARAM(TRUE, 0));
\r
112 // Step 3: The Message Loop
\r
113 while (GetMessage(&Msg, nullptr, 0, 0) > 0) {
\r
114 TranslateMessage(&Msg);
\r
115 DispatchMessage(&Msg);
\r