我有一个运行在Win7中的没有Titlebar的MFC应用程序(即我的标题栏是自制的,具有用于还原,最大化和关闭的自定义按钮)。在Win7中,当用户将窗口拖到屏幕的顶部时,它响应Win 7 API生成的最大化事件。但是,一旦最大化,我无法捕获用户将窗口从顶部拖动时发生的还原事件。如何在最大化窗口上处理拖动事件
我在双击时处理还原,我处理还原时单击还原按钮,但拖动我无法检测到。
我会想象它看起来类似于:
if (message == WM_WINDOWPOSCHANGING)
{
// DETECT RESTORE MSG HERE.
}
但是,这似乎并没有抓住它。就好像某个地方我已经禁止在窗户最大化时移动窗户。
有没有办法阻止WM_RESIZE?如何处理拖动事件以启用自动调整大小?
我会试试!谢谢! – 2010-01-22 15:00:34
这不起作用,因为我们的虚假标题栏实际上是一个功能区(来自CWnd)。当我捕获命中测试并返回它是一个HTCaption时,然后将功能区拖到主框架周围并剪切到窗口边缘。 :( – 2010-01-22 20:16:06
那么这是不幸的,我唯一的想法是改变用户界面以允许从主窗口显示“拖拽区域” - 然后WM_NCHITTEST就可以工作 - 类似于Chrome的工作方式 – Ruddy 2010-01-22 20:39:25