我正在开发一个MFC c++应用程序。我正在开发一个对话框,它将SystemMenu
属性设置为FALSE
,因此它没有最大化的能力。我想处理标题栏上的双击消息。我该怎么做呢?
x();
。
从技术上讲,您必须处理WM_NCLBUTTONDBLCLK并检查双击是否发生在窗口的标题区域,可能通过发送WM_NCHITTEST并测试返回值为HTCAPTION
。
(更新:正如JohnCz正确指出的那样,实际上没有必要发送WM_NCHITTEST
,因为WM_NCLBUTTONDBLCLK
已经在wParam
中携带了它的结果。)
那么你只需要将wParam
中的SC_MAXIMIZE
的WM_SYSCOMMAND发送到窗口以最大化它。
我想这里有一些混淆:
弗雷德里克·哈米迪你是正确的,处理WM_NCLBUTTONDBLCLK消息是正确的方法,但是没有必要调用HitTest,因为WM_NCLBUTTONDBLCLK消息传递了MFC框架在WM_NCLBUTTONDBLCLK处理程序中转换的命中信息。
Victor,到底是什么,你正试图通过处理WM_NCLBUTTONDBLCLK消息实现?
如果你方明确了要求,也许还有别的办法可以满足你方的要求。事实上,你没有系统菜单,并不能阻止你的应用程序接收非客户端区域的消息。