关于OnKeyDown的问题

dhongqian 2006-02-13 09:28:18
我在VC.net的对话框中调用WM_KEYDOWN的消息函数OnKeyDown,为什么按动键盘没有反应


void CModifyDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

MessageBox ("Test");


CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}

一直没有对话框跳出来
...全文
377 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dhongqian 2006-02-14
  • 打赏
  • 举报
回复
谢谢楼上各位,问题已解决,
对话框默认情况下本身不接收WM_KEYDOWN信息,
要处理该信息,需要自己截取
dhongqian 2006-02-13
  • 打赏
  • 举报
回复
谢谢楼上
我的意思是说:
像我上面的代码,无论按什么键都没有反应,
我想知道的是,如何让它有反应,即有对话框跳出
liuchuan98 2006-02-13
  • 打赏
  • 举报
回复
要根据键值做判断,你这样无论按什么键都回有反映的
如:
switch(nChar){
case VK_DELETE:
//删除键
break;
case VK_HOME:
//home键
break;
//......

default:
break;
}
OnKeyDown(nChar, nRepCnt, nFlags);
heyang22118952 2006-02-13
  • 打赏
  • 举报
回复
你给的代码是没有错误的,你再好好查一查看有没有别的什么地方有错误。
我估计运行时这段代码肯定没有执行,你可以在
MessageBox ("Test");
处添加一个断点,看程序运行时会不会在这里中断。
或者加一句
TRACE(_T("Test\n"));
宏调用,然后在运行时看输出窗口内有没有出现一句“Test”。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧