我在MSDN上看到了这个文档。
我正在尝试删除窗口的标准框架。我成功地将框架扩展到工作区,但以下代码片段不起作用。我的窗户看起来和没有它一模一样....
if (message == WM_CREATE)
{
RECT rcClient;
GetWindowRect(hWnd, &rcClient);
// Inform the application of the frame change.
SetWindowPos(hWnd,
NULL,
rcClient.left, rcClient.top,
(rcClient.right - rcClient.left), (rcClient.bottom - rcClient.top),
SWP_FRAMECHANGED);
}
有人可以帮我吗?
我认为您可以通过在创建窗口时将WS_OVERLAPPED(而不是WS_OVERLAPPEDWINDOW)作为dwStyle参数传递给CreateWindowEx来做到这一点。
这真的很简单,只需转到窗口过程,然后消息WM_NCCALCSIZE并在 WPARAM 为 TRUE 时返回 0
// Window Procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
switch (msg)
{
case WM_NCCALCSIZE:
if (wparam == TRUE) return 0;
break;
}
...
}
作为澄清,您显示的代码用于强制以前的代码