求教一些MFC的问题,本人刚接触不久。

qq_39658113 学生  2017-11-27 09:36:13
最近在看孙鑫老师的VC++深入详解,里面第7章对话框中,有一个是实现按下回车键,实现输入焦点从第一个编辑框中移动到下一个编辑框。里面有一种方法是用OnOK()函数添加GetFocus()->GetNextWindow()->SetFocus();代码实现按下回车焦点转移。然后我想,按下键盘后不是会产生WM_CHAR消息吗,我用它的消息函数OnChar()来添加相同的代码,但是为什么实现不了这个功能。
void CText7Dlg::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDialog::OnChar(nChar, nRepCnt, nFlags);
if(0x0d==nChar)
{
GetFocus()->GetNextWindow()->SetFocus();
}
}
有没有大神能告诉我为什么,刚接触对MFC里面的机制还不熟悉。
...全文
178 12 1 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
凌乱哥 2017-11-27
建议百度搜索看看WM_KEYDOWN和WM_CHAR消息的区别
  • 打赏
  • 举报
回复
凌乱哥 2017-11-27
WM_CHAR CHAR是“字符”,1234abcd才是字符,回车不是字符
  • 打赏
  • 举报
回复
qq_39658113 2017-11-27
BOOL CText7Dlg::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if(pMsg->message==WM_CHAR) { if(pMsg->message==WM_KEYDOWN) if(pMsg->wParam==VK_RETURN) //GetNextDlgTabItem(GetFocus())->SetFocus(); MessageBox(L"haha"); 我重载了PreTranslateMessage,但是在编辑框中按下回车键后为什么不会弹出我写的MessageBox(L"haha");,编辑框控件的Want Return设置了,OnOK()函数也重载了,为什么没有反应
  • 打赏
  • 举报
回复
schlafenhamster 2017-11-27
对话框 客户区 本身 没有 WM_CHAR 消息
  • 打赏
  • 举报
回复
schlafenhamster 2017-11-27
你看看 void CText7Dlg::OnChar 是不是 没有 进去 ?
  • 打赏
  • 举报
回复
qq_39658113 2017-11-27
我已经把默认OnOK()函数注释掉了,所以按下回车不会退出
  • 打赏
  • 举报
回复
schlafenhamster 2017-11-27
开始 对话框的 focus 在按钮 OK 上 ,回车 的 结果 是 响应 OK ,对话框 退出 !
  • 打赏
  • 举报
回复
schlafenhamster 2017-11-27
GetNextDlgTabItem(GetFocus())->SetFocus(); 将 focus 到 OK 后 ,VK_RETURN 使窗口关闭
  • 打赏
  • 举报
回复
schlafenhamster 2017-11-27
if(pMsg->message==WM_KEYDOWN) { if(pMsg->wParam==VK_RETURN) { MessageBox("haha"); GetNextDlgTabItem(GetFocus())->SetFocus(); } } 不是很好嘛?
  • 打赏
  • 举报
回复
schlafenhamster 2017-11-27
if(pMsg->message==WM_KEYDOWN) { if(pMsg->wParam==VK_RETURN) { //GetNextDlgTabItem(GetFocus())->SetFocus(); MessageBox("haha"); } } 可以 弹出 haha
  • 打赏
  • 举报
回复
凌乱哥 2017-11-27
引用 8 楼 qq_39658113 的回复:
但是我看书里面回车对应的字符是0X0d啊,而且也确实产生了WM_CHAR消息
读万卷书不如行万里路,尽信书不如不读书
  • 打赏
  • 举报
回复
qq_39658113 2017-11-27
但是我看书里面回车对应的字符是0X0d啊,而且也确实产生了WM_CHAR消息
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC
加入

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2017-11-27 09:36
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……