我正在用本机C++和WinAPI制作一个程序。
这个程序有一个主要的应用程序窗口,我想要有点持久化。通过红色的X按钮关闭窗口似乎是很自然的,当我真的不想退出程序时,我经常会意外地按下它(Teamspeak在我身上会发生这种情况)。因此,我试图将红色X按钮重新定位为最小化按钮,以避免意外退出。
但是,我的应用程序应该有一些方法可以使用标准的系统控件退出程序。我想让ALT+F4和右键点击任务栏图标关闭。我试着拦截WM_CLOSE和SYSCOMMAND (SC_CLOSE),但这似乎禁用了退出程序的所有标准系统方法(除了在Process中杀死它--实际上不是一个标准方法)。
有没有办法只拦截窗口的红色X按钮?我注意到是这样做的,但我不知道如何做到这一点。
发布于 2012-03-20 14:38:08
处理WM_NCLBUTTONDOWN
消息并使用WM_NCHITTEST
检查它--单击即将传递给HTCLOSE
控件(这是您的红色X解析的内容)。或者,处理WM_NCHITTEST
本身,并通过将返回值替换为其他内容来防止发现窗口GUI的HTCLOSE
部分。
https://stackoverflow.com/questions/9788662
复制相似问题