询问者
CDockablePane 浮动时候屏蔽右键的问题

问题
全部回复
-
你好,
感谢您在MSDN论坛发帖提问。
>>点击CDockablePane的标题栏右键的系统菜单还会出现,请问这个具体怎么屏蔽?
WM_CONTEXTMENU消息,用于通知窗口用户在窗口中单击鼠标右键(右键单击)。如果窗口没有显示快捷菜单,则应将此消息传递给DefWindowProc函数。如果窗口是子窗口,则DefWindowProc将消息发送给父窗口。如果指定的位置在窗口的标题中,则DefWindowProc将显示默认快捷菜单。
所以如果你想屏蔽窗口的系统菜单,就只需要让系统没有机会响应WM_CONTEXTMENU消息就行了。在该类上添加WM_CONTEXTMENU消息,然后添加该消息响应函数,也就是相当于重载了系统默认的右键菜单响应。注释掉默认的代码,就可以屏蔽掉右键响应了。
Best wishes,
Jeanine Zhang -
你好,
>>但是如果2个CDockablePane浮动起来,把他们重叠到一起,再次点击标题栏右键菜单还是存在的
这个时候该怎么屏蔽呢?您可以通过调用CDockingManager :: EnableDockSiteMenu为所有窗格启用/不显示此菜单。将它设置为FALSE,不显示右键菜单。
Best wishes,
Jeanine Zhang -
你好,
我建议您使用CDockablePane::AttachToTabWnd将当前窗格附加到目标窗格中,创建选项卡式的窗格。选项卡式窗格是一种将窗格彼此对接的概念,以形成内部具有单独窗格的常规选项卡控件。应用某些命令将影响所有窗格。然后在使用上面提到的方法对标题栏右键菜单栏选项进行屏蔽。
Best wishes,
Jeanine Zhang