VC 中我想按下ESC键,去除控件当前焦点,如何做,多谢 OnKeyDown()判断ESC按键SetFocus(NULL) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不行的,这个我试过了,OnKeyDown()根本没有走进来 在PreTranslateMessage()中拦截WM_KEYDOWN消息处理。 在PreTranslateMessage()中拦截WM_KEYDOWN消息处理 是对话框程序吧重载OnCancel在里面SetFocus就行了如果是其它,那就要用上面五星级用户提的建议了 看看这段BOOL CReturn_TabDlg::PreTranslateMessage(MSG* pMsg){...if (WM_KEYDOWN == pMsg->message && VK_RETURN == pMsg->wParam) { CWnd *wnd = GetFocus(); if (NULL != wnd) { char str[256]; CString ClassName = _T("Button"); GetClassName(wnd->m_hWnd, str, 256); if (str == ClassName) { UINT i = wnd->GetDlgCtrlID(); SendMessage(WM_COMMAND, i, (LPARAM)wnd->m_hWnd); } } CWnd *mwnd = GetNextDlgTabItem(wnd); if (mwnd) { mwnd->SetFocus(); return TRUE; } }...} BOOL CXXDlg::PreTranslateMessage(MSG *pMsg)//防止按下Enter和Esc键退出{ if ( pMsg->message == WM_KEYDOWN ) { switch(pMsg->wParam) { case VK_ESCAPE: return TRUE; //直接返回TRUE break; case VK_RETURN: return TRUE; break; } } return CDialog::PreTranslateMessage(pMsg); } PreTranslateMessage,按ESC键时候,这个函数没有调到,是怎么回事 按ESC键时候,这个函数没有调到,是怎么回事?你如何判断的? 有没有完整的代码段,参考一下,我想捕捉ESC键,可是试了几次都没有用 上面的还不够完整啊在PreTranslateMessage中处理啊楼主你把你在PreTranslateMessage中是怎么处理的贴一下? 解析EML文件可以用什么com组件 如何将TeeChart的内容打印到页面上? 需要建一个服务器,不知道如何下手 在对话框内内嵌的一个对话框里做一个向导界面? 关于C语言中的内存保护问题,高手进来讨论,绝对有价值,100分奉送。 如何査找内存洩漏? 弱弱的问一个问题:怎样保存讨论区的网页阿?xml格式的。 新手问题! 怎样才通能自动生成右键弹出菜单呢? 高分给高手:在asp中调用的dll为什么不能返回数组。 ListView 无素编辑 问个类间传递数据的问题...我改构造函数 总不能成功.大家帮忙看看.
根本没有走进来
重载OnCancel
在里面SetFocus就行了
如果是其它,那就要用上面五星级用户提的建议了
BOOL CReturn_TabDlg::PreTranslateMessage(MSG* pMsg)
{
...
if (WM_KEYDOWN == pMsg->message && VK_RETURN == pMsg->wParam)
{
CWnd *wnd = GetFocus();
if (NULL != wnd)
{
char str[256];
CString ClassName = _T("Button");
GetClassName(wnd->m_hWnd, str, 256);
if (str == ClassName)
{
UINT i = wnd->GetDlgCtrlID();
SendMessage(WM_COMMAND, i, (LPARAM)wnd->m_hWnd);
}
}
CWnd *mwnd = GetNextDlgTabItem(wnd);
if (mwnd)
{
mwnd->SetFocus();
return TRUE;
}
}
...
}
{
if ( pMsg->message == WM_KEYDOWN )
{
switch(pMsg->wParam)
{
case VK_ESCAPE:
return TRUE; //直接返回TRUE
break;
case VK_RETURN:
return TRUE;
break;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
?你如何判断的?