基于MFC对话框的程序如何禁用鼠标右键

2024-12-03 15:59:51
推荐回答(2个)
回答1:

可以给需要屏蔽的对话框加PreTranslateMessage,如果想给所有对话框屏蔽,那么加在app类中
代码如下:
BOOL CxxApp::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
// TODO: 在此添加专用代码和/或调用基类
if( pMsg->message == WM_RBUTTONDOWN )
{
return TRUE;//这样就可以阻止该消息,可以放一个编辑框消息,屏蔽之前编辑框里面点右键会弹出菜单的,加了屏蔽以后点右键就没反应了
}
return CWinApp::PreTranslateMessage(pMsg);
}
原理是在PreTranslateMessage拦截消息,直接return TRUE 就可以阻止该消息
另外还有WM_RBUTTONUP,WM_RBUTTONDBLCLK,跟鼠标右键相关的消息可以加上去

回答2:

对话框本身就没有右键的响应吧。
如果是指定控件不响应右键,重载该控件,改写右键响应即可。或者重载PreTranslateMessage,也可以屏蔽鼠标右键。