【发布时间】:2021-12-18 15:31:42
【问题描述】:
我正在使用 winapi 编写一个简单的桌面应用程序,当我在 WNDCLASSEXW 对象或 CreateWindowExW 函数中使用宏输入窗口样式时,其中一些宏会导致我的窗口根本不显示。这是我用于我的对象和函数代码的代码。 数字 0 有效,但那些不起作用,例如: WS_CAPTION WS_SYSMENU WS_MINIMIZEBOX WS_MAXIMIZEBOX
什么是修复,以便我可以禁用调整大小?
wcex.style
是我输入的地方。
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEXW wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = WS_OVERLAPPED;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT1));
wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_WINDOWSPROJECT1);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
return RegisterClassExW(&wcex);
}
及功能码:
HWND g_Htext = CreateWindowExW(
0, // Optional window styles.
L"STATIC", // Window class
L"Learn to Program Windows", // Window text
SS_LEFT, // Window style
// Size and position
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, // Parent window
NULL, // Menu
hInstance, // Instance handle
NULL // Additional application data
);
【问题讨论】:
-
WNDCLASSEX 中的样式成员用于类样式(以 CS_ 开头,请阅读有关它们的文档)。窗口样式可以与 CreateWindow 一起使用。
-
好的,谢谢,但是如何让我的主窗口不能调整大小呢?
-
在创建窗口时使用 wndstyles(以及可选的 extstyles)参数
-
你能给我一个链接吗?我找不到任何关于 wndstyles 的信息。
-
您正在注册一个窗口类,但随后显示实例化不同窗口类的代码。我觉得这个问题有很多遗漏。