C++ win32窗口禁止鼠标左键按下拖动Duilib

说明:主要就是处理WM_NCHITTEST消息

    switch (message)
    {
    case WM_NCHITTEST:
        // 禁止拖动窗口
        return HTCLIENT;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }

如果是Duilib实现的, 那么你的处理要这么写:

LRESULT CGNMainDlg::OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	return 禁止? HTCLIENT : CGNWindowImplBaseEx::OnNcHitTest(uMsg, wParam, lParam, bHandled);
}

注意: 是一个单独的处理函数,不在 OnSysCommand 或者 HandleCustomMessage 中处理

实在不行也可以试试

// 去掉标题栏属性
LONG style = ::GetWindowLong(m_hWnd, GWL_STYLE);
style = style & ~WS_CAPTION;
::SetWindowLong(m_hWnd, GWL_STYLE, style);

你可能感兴趣的:(C++,c++,开发语言,Duilib,win32,窗口,win32窗口,windows窗口)