MFC对话框不响应键盘消息。 20

在VC中,为了响应键盘消息,我在对话框中添加了PreTranslateMessage,通过判断键值来确定是哪个键按下。这些功能都已经实现了。另外,在对话框中还有些Butt... 在VC中,为了响应键盘消息,我在对话框中添加了PreTranslateMessage,通过判断键值来确定是哪个键按下。这些功能都已经实现了。
另外,在对话框中还有些Buttons,是需要用鼠标操作的,在用鼠标和键盘交替操作的过程中,发现对话框不再响应键盘了。
请问这是为什么?
UpdateData();
if (pMsg->message==WM_KEYDOWN)
{
if (pMsg->wParam==VK_F12)
{
GT_AbptStp(AXIS);
}
if(pMsg->wParam=='P')
CPro2Dlg::OnPause();
if (KeyLock==FALSE)
{

switch(pMsg->wParam)
{
case 'F':
if (m_fileopne.IsWindowEnabled())
CPro2Dlg::OnFileOpen();
break;
case 'S':
if(m_run.IsWindowEnabled())
CPro2Dlg::OnRun();
break;
case 'Z':
if(m_zero.IsWindowEnabled())
CPro2Dlg::OnZeroPos();
break;

default:
break;
}

}
}

if (pMsg->message == WM_KEYUP)
{

if (KeyUpLock==TRUE)
{

if ((pMsg->wParam=='K')||(pMsg->wParam=='L'))
{
GT_SmthStp(AXIS);
GT_Update(AXIS);
}
KeyUpLock=FALSE;
}
}
return CDialog::PreTranslateMessage(pMsg);

谢谢
——————————
应该不是,当不响应键盘时,连ESC键都没有了,所以不应该是那个KeyLock的事。
展开
 我来答
百度网友1e3176a03
2010-11-16 · TA获得超过2637个赞
知道小有建树答主
回答量:1144
采纳率:100%
帮助的人:1484万
展开全部
把PreTranslateMessage处理代码发上来看看。

if (KeyLock==FALSE)
你看看是不是KeyLock值是否正确,是不是因为这个条件猛亮不成立导致键蚂知巧盘不响闷键应的。
Bhattacharrya
2010-11-17 · TA获得超过806个赞
知道小有建树答主
回答量:259
采纳率:42%
帮助的人:135万
展开全部
如果你想让整个对话框接隐指收字符拆拿应旅携搭该响应PreTranslateMessage( MSG* pMsg );当pMsg->message==WM_CHAR时进行你的工作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaodw2013
2012-10-15
知道答主
回答量:13
采纳率:0%
帮助的人:6.9万
展开全部
对吵运清话框中升前把 ID为IDCANCEL的按钮悄卜Disable属性设置为TRUE时,对话框将不相应ESC按键.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式