用C++编写一个简单的窗口程序并且背景为灰色,单击鼠标左键弹出对话框
时间: 2024-09-18 20:17:40 浏览: 125
egaoxiaochengxu.rar_对话框与窗口_Visual_C++_
在C++中,我们通常使用Windows API或者第三方库如Qt或wxWidgets来创建图形用户界面(GUI)。为了创建一个简单的窗口程序,并设置背景颜色为灰色,我们可以使用`CreateWindowEx`函数。然而,由于涉及到Windows特定的API,我将提供一个使用MFC(Microsoft Foundation Classes)的例子,因为它是一个常见的用于Windows开发的C++库。
```cpp
#include <windows.h>
#include <atlctrls.h> // MFC的一部分
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message) {
case WM_CREATE:
static COLORREF gray_color = RGB(128, 128, 128); // 灰色(RGB值)
return CreateWindowEx(NULL, WC_STATIC, L"", WS_VISIBLE | WS_CLIPSIBLINGS,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
hWnd, NULL, AfxGetApp()->m_hInstance, NULL);
case WM_LBUTTONDOWN:
MessageBox(hWnd, L"点击了左键!", L"提示", MB_OK);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
WNDCLASS wc = { };
wc.lpfnWndProc = WndProc;
wc.lpszClassName = "GrayBackgroundWindow";
wc.hbrBackground = (HBRUSH)(COLOR_GRAYTEXT + 1); // 背景色为灰色
RegisterClass(&wc);
HWND hWnd = CreateWindowEx(NULL, "GrayBackgroundWindow", L"My Simple Window",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL);
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
```
阅读全文