删除 Win32 C++中的标准窗口框架



我在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;
    }
    ...
}

作为澄清,您显示的代码用于强制以前的代码

相关内容

  • 没有找到相关文章

最新更新