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

发布时间:2024年01月15日

说明:主要就是处理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);
文章来源:https://blog.csdn.net/qq_33191599/article/details/135597657
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。