如何禁止在MFC MDI应用程序中激活其他文档?

How to forbid activation of other documents in MFC MDI application?

提问人:Luchian Grigore 提问时间:8/26/2014 更新时间:8/27/2014 访问量:168

问:

我有一个 MFC mdi 应用程序。在创建多个文档后,我希望在某个时候禁止激活另一个文档(通过使用 ctrl+tab 或简单地单击另一个文档的工作区或其他内容进行激活)。

似乎可以处理一些消息来完成此目的: with 等 。msg = WM_COMMANDwParam = SC_NEXT, SC_PREV

但是,处理这些消息不会阻止通过单击另一个文档的客户端进行激活。在这种情况下,所有通知都是在实际激活后收到的。

到目前为止,我发现的唯一解决方案是使用鼠标钩,但我更喜欢更优雅的东西。

如何完全停止激活另一个文档(通过鼠标点击或其他方式)?

重新激活上一个文档不是可接受的解决方案。

Visual-C++ MFC MDI

评论


答:

0赞 Mark Ransom 8/27/2014 #1

尝试回复WM_MOUSEACTIVATE消息并返回 或 .MA_NOACTIVATEMA_NOACTIVATEANDEAT