如何屏蔽对话框中空格键的默认处理?
在对话框内,又按钮控件和Edit控件,我想法是不管当前焦点是在按钮上,或在Edit控件上,我按一下空格键就转入我定义的处理程序中,并且屏蔽掉原来空格键的功能
我现在用下面的函数捕获到空格键,但是空格键依然有效,也就是说如果光标Edit控件上,仍然会在控件输入一个空格。
BOOL CVCComDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYUP)
{
switch(pMsg->wParam)
{
case VK_SPACE:
{
MessageBox("你按了空格键");
return 0;
}
}
}
return CDialog::PreTranslateMessage(pMsg);
}
不知大家有什么好的方法,尽量不用钩子来处理。
问题点数:100、回复次数:5Top
1 楼vcleaner(我没当大哥很久了.......)回复于 2005-01-21 15:31:37 得分 100
参考:
BOOL CBarCodeDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN)
{
if(pMsg->wParam==VK_SPACE)
{
return TRUE;
}
}
}
记得一定要return TRUE;不能return 0;Top
2 楼qrlvls( 空 气 )回复于 2005-01-21 15:31:51 得分 0
将 return 0 改为 return TRUE 试试Top
3 楼vcleaner(我没当大哥很久了.......)回复于 2005-01-21 15:32:31 得分 0
return TRUE;标识消息已经处理过了,而return 0;则标识消息没有处理还需要寻找其他的处理函数!Top
4 楼qrlvls( 空 气 )回复于 2005-01-21 15:32:36 得分 0
呵呵,刚刚还没人,一眨眼sofa就不在了Top
5 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-01-21 16:09:25 得分 0
BOOL对应TRUETop




