###请问怎么让一个Dialog始终接受键盘事件### 我在Dialog中放入了一个其它控件后,OnKeyDown的事件就不起作用了,请问一下怎么解决。还有一个问题就是像Esc,Enter这些键好像在OnKeyDown不起作用,正确的应该写在什么事件中? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请说明:您的Dialog是怎么创建的,它是您的程序主窗口还是别的,还有没有其他窗口,其他控件是什么控件,您到底想问什么? To kvls(冰茶):我创建的一个基于Dialog的工程啊。当然是程序主窗口。如果Dialog上什么控件也没有就可以接受按键,但只要有其它控件就不行。主要目的: 在OnKeyDown的事件中处理所有按键事件,关键在于Dialog有了控件之后,Dialog就收不到消息了。 在edit控件中按下回车或escBOOL CTest6Dlg::PreTranslateMessage(MSG* pMsg) { if( pMsg->message == WM_KEYDOWN ) { if(pMsg->hwnd == GetDlgItem(IDC_EDIT1)->m_hWnd) { switch( pMsg->wParam ) { case VK_RETURN: AfxMessageBox("enter"); return TRUE; case VK_ESCAPE: AfxMessageBox("esc"); return TRUE; } } } return CDialog::PreTranslateMessage(pMsg);} BOOL CTest6Dlg::PreTranslateMessage(MSG* pMsg) { if( pMsg->message == WM_KEYDOWN ) { if(pMsg->hwnd == GetSafeHwnd()) { //本窗口的WM_KEYDOWN } } return CDialog::PreTranslateMessage(pMsg);} VC++控制EXCEL,我现在已经打开了一个EXCEL文件,单击按钮后,如何在EXCEL中的写入数据。 大家帮忙!!! 动态改变窗口背景色? 游戏站点 有关CTabCtrl的两个函数的问题? 如何用程序运行一个带参数的批处理文件,运行命令如:run tts.ts 请问编写IE插件,怎么弹出一个简单的窗口,分不够再加 我的软件,兄弟姐妹们过来支持一下,进者有分。 msdn2003怎么用??? 关于VC的调试问题 请问谁有/哪有邮件接收解码的代码? 用skinmagic的一个小问题
我创建的一个基于Dialog的工程啊。
当然是程序主窗口。
如果Dialog上什么控件也没有就可以接受按键,但只要有其它控件就不行。主要目的:
在OnKeyDown的事件中处理所有按键事件,关键在于Dialog有了控件之后,Dialog就收不到消息了。
{
if( pMsg->message == WM_KEYDOWN )
{
if(pMsg->hwnd == GetDlgItem(IDC_EDIT1)->m_hWnd)
{
switch( pMsg->wParam )
{
case VK_RETURN:
AfxMessageBox("enter");
return TRUE;
case VK_ESCAPE:
AfxMessageBox("esc");
return TRUE;
}
}
}
return CDialog::PreTranslateMessage(pMsg);
}
{
if( pMsg->message == WM_KEYDOWN )
{
if(pMsg->hwnd == GetSafeHwnd())
{
//本窗口的WM_KEYDOWN
}
}
return CDialog::PreTranslateMessage(pMsg);
}