获得标题栏双击

Vic*_*tor 1 c++ mfc message-queue visual-c++

我正在研究MFC C++应用程序.我正在开发一个SystemMenu属性设置为的对话框FALSE,因此它没有最大化的能力.我想处理标题栏上的双击消息.我怎样才能做到这一点?

编辑:

我希望这次对每个人都清楚.我有一个没有系统菜单(和系统按钮或图标)的对话框.当用户双击该对话框的标题栏时,我希望程序调用函数x();.

Fré*_*idi 5

从技术上讲,您必须处理WM_NCLBUTTONDBLCLK并检查是否在窗口的标题区域中发生了双击,可能是通过发送WM_NCHITTEST并测试返回值HTCAPTION.

(更新:正如JohnCz正确指出的那样,发送WM_NCHITTEST实际上并不是必需的,因为WM_NCLBUTTONDBLCLK已经将其结果输入了wParam.)

然后,你将只需要发送WM_SYSCOMMANDSC_MAXIMIZEwParam窗前最大化.

但是,在实践中,如果您的对话框未准备好处理大小更改并相应地布局其控件,则它将无法实现.我上次检查时,这个功能在MFC中没有开箱即用.