我有一个应用程序,显示一个显示在主窗口顶部的CFrameWnd。当用户为窗口选择某种模式时,我需要窗口不可移动且不可调整大小
我的CFrameWnd是使用样式WS_OVERLAPPEDWINDOW | WS_THICKFRAME | WS_POPUP
我遇到了一个使用CWndOnNcHitTest重载重写
的解决方案
HTLEFT,HTRIGHT,HTTOP,HTTOPLEFT,HTTOPRIGHT,HTBOTTOM,HTBOTTOMLEFT,HTBOTTOMRIGHT,HTSIZE,HTCAPTION
到HTBORDER
以阻止框架识别负责调整/移动的区域
在我的情况下,此方法适用于调整大小,但仍然可以移动窗口,尽管最小的覆盖正常工作(使用跟踪验证)。
我的方法有什么问题,或者是否有什么东西干扰了这个解决方案?如果有的话,你有什么建议吗?
答案 0 :(得分:0)
你应该能够使OnNcHitTest()工作,不要返回HTCAPTION。
但是,移动/调整窗口大小的方法不止一种,您还必须担心系统菜单(键入Alt + Space)。为WM_MOVING和WM_SIZING编写一个消息处理程序并覆盖RECT,以便窗口保持不变。