MG_CONFIG_USE_OWN_OVERLAPPED_BITBLIT
时间: 2023-08-20 22:06:52 浏览: 72
这是一个编译选项,用于指定是否使用 Windows GDI 的 Overlapped BitBlt 函数来绘制位图。如果设置为 1,则使用自定义的 Overlapped BitBlt 函数;如果设置为 0,则使用 Windows GDI 的函数。该选项通常在编译图形应用程序时使用,可以提高应用程序的性能。
相关问题
帮我美化hwndMain = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 600, 600, NULL, NULL, hInstance, NULL);创建的窗口
好的,以下是美化后的代码:
```c++
HWND hwndMain = CreateWindow(szWindowClass, szTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
600, 600,
NULL, NULL, hInstance, NULL);
if (hwndMain == NULL) {
MessageBox(NULL, "Window creation failed!", "Error", MB_ICONERROR | MB_OK);
return 0;
}
// 给窗口添加一个背景画刷,颜色为灰色
HBRUSH hbrBackground = CreateSolidBrush(RGB(192, 192, 192));
SetClassLongPtr(hwndMain, GCLP_HBRBACKGROUND, (LONG_PTR)hbrBackground);
// 设置窗口的图标
HICON hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON));
SendMessage(hwndMain, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
SendMessage(hwndMain, WM_SETICON, ICON_SMALL, (LPARAM)hIcon);
// 设置窗口的字体
HFONT hFont = CreateFont(16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, TEXT("微软雅黑"));
SendMessage(hwndMain, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));
// 让窗口居中显示
RECT rcWorkArea;
SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, 0);
int x = (rcWorkArea.right - rcWorkArea.left - 600) / 2;
int y = (rcWorkArea.bottom - rcWorkArea.top - 600) / 2;
SetWindowPos(hwndMain, NULL, x, y, 0, 0, SWP_NOZORDER | SWP_NOSIZE);
// 显示窗口
ShowWindow(hwndMain, nCmdShow);
UpdateWindow(hwndMain);
```
以上代码实现了以下功能:
1. 给窗口添加一个灰色的背景画刷。
2. 设置窗口的图标。
3. 设置窗口的字体为微软雅黑,字号为16。
4. 让窗口在屏幕中央显示。
5. 显示窗口并更新窗口。
HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);
这段代码使用 Win32 API 创建了一个窗口。具体解释如下:
- HWND hWnd:窗口句柄,用于标识该窗口。
- CreateWindowW:Win32 API 函数,用于创建窗口。
- szWindowClass:窗口类名,是一个字符串类型的参数,用于区分不同的窗口类。
- szTitle:窗口标题,是一个字符串类型的参数,用于设置窗口标题。
- WS_OVERLAPPEDWINDOW:窗口样式,是一个常量,指定了窗口的样式,例如是否有标题栏、边框等。
- CW_USEDEFAULT:初始位置和大小,是一个常量,指定了窗口的初始位置和大小,默认为系统默认值。
- nullptr:父窗口和菜单句柄,是指定父窗口和菜单句柄的参数,这里我们使用 nullptr 表示没有父窗口和菜单。
- hInstance:实例句柄,是指定该窗口所属的应用程序实例的句柄。
- nullptr:附加参数,是一个指向任意数据的指针,用于传递额外的信息,这里我们不需要传递任何信息,所以设置为 nullptr。
这段代码的作用是创建一个名为 szWindowClass,标题为 szTitle 的窗口,并返回该窗口的句柄,以便后续使用。需要注意的是,这段代码只是创建了一个窗口,还需要通过 ShowWindow 函数显示窗口,才能在屏幕上看到该窗口。
阅读全文