0

在 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);
}

有人可以帮我吗?

4

2 回答 2

1

我认为您可以通过在创建窗口时将 WS_OVERLAPPED(而不是 WS_OVERLAPPEDWINDOW)作为 dwStyle 参数传递给 CreateWindowEx 来实现。

于 2013-01-23T19:02:26.163 回答
0

这真的很简单,只要去你的窗口过程,然后消息 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;
    }
    ...
}

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

于 2020-07-25T20:42:13.070 回答