MFC对话框中按TAB键 实现在指定控件中跳转
2017-03-15 14:37
316 查看
MFC对话框中按TAB键 实现在指定控件中跳转
重载PreTranslateMessage(MSG *pMsg)MFC Class Wizard ——> Virtual Functions ——-> PreTranslateMessage
捕获TAB键 指定焦点跳转
BOOL CXCYKDlg::PreTranslateMessage(MSG* pMsg) { if((pMsg->message == WM_KEYDOWN) && (VK_TAB == (int) pMsg->wParam) { CWnd *mwnd = GetFocus(); if( NULL != mwnd ) { if(mwnd== GetDlgItem(IDC_AAA)) { GetDlgItem(IDC_BBB)->SetFocus(); return TRUE; } else if(xxxxxxxxxx) { GetDlgItem(zzzzzzzz)->SetFocus(); return TRUE; } .......... } } return CDialog::PreTranslateMessage(pMsg); }
解决按下TAB ORDER按回车键使下个控件自动获得焦点
1.选中主对话框:Layout菜单=>Tab Order(或者直接按Ctrl+D):按你需要的TAB顺序依次单击控件.
2.按Ctrl+SHIFT+X打开MFC ClassWizard=>Message Maps选项卡:给你的主DLG映射PreTranslateMessage消息处理函数:
BOOL CYourDlg::PreTranslateMessage(MSG* pMsg)
{
// 顺次传递焦点,除非当前焦点在确定按钮上时才响应触发消息
if((pMsg->message == WM_KEYDOWN) && (VK_RETURN == (int) pMsg->wParam))
{
if(GetFocus()->GetDlgCtrlID() != IDOK)
{
pMsg->wParam = VK_TAB;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
相关文章推荐
- 用回车键实现MFC对话框中TAB键控件输入焦点在控件中跳转的效果(转)
- 用回车键实现MFC对话框中TAB键控制输入焦点在控件中跳转的效果
- 用回车键实现MFC对话框中TAB键控件输入焦点在控件中跳转的效果
- 用回车键实现MFC对话框中TAB键控制输入焦点在控件中跳转的效果
- 用回车键实现MFC对话框中TAB键控制输入焦点在控件中跳转的效果
- 用回车键实现MFC对话框中TAB键控件输入焦点在控件中跳转的效果(转)
- MFC对话框使用回车键实现像TAB键一样跳转输入焦点
- 在MFC中使用Tab Control控件实现分页显示和跳转
- MFC对话框控件和背景图片自适应窗口最大化和拉伸缩放的实现
- 在WebBrowser控件中实现自动登录并跳转到指定页面
- 用ENTER键模拟TAB键,实现焦点在每个控件里逐一跳转
- 页面捕获Enter键实现Tab键移动功能(指定特定的控件)
- vs 2008下实现最小化到托盘和tab控件显示多个对话框的两个好博文
- VS2010/MFC编程入门之九(对话框:设置对话框控件的Tab顺序)
- 两种方法实现MFC 对话框最大化时控件也随比例最大化或者还原
- 在WebBrowser控件中实现自动登录并跳转到指定页面
- 不用splitter控件 简单实现对mfc对话框的分割的方法
- VS2010/MFC设置对话框控件的Tab顺序
- MFC中 使用Tab Control 控件在对话框中添加属性页
- [转]MFC:Tab Control 控件中贴对话框