关于回车消息响应问题 随便建一对话框,一个文本框,响应了回车按下的消息,回车后会弹出一个提示框,如果再按回车来确认对话框,这时候,程序又会对该次回车的按下进行响应,又会弹出提示框来。我本意是在文本框输入后,回车进行确认,弹出一个提示框进行说明,再按回车,应该返回到文本框的编辑状态。想问这有什么办法吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第二次MessageBox后把文本框setfocus()不就选中了嘛? 重载PreTranslateMessage函数,函数里面记录回车按键是第几次,对于第二次就SetFocus,之后直接返回 焦点在文本框上,回车,弹出提示框,回车确认,提示框消失,但是,文本框对这个回车确认又响应了,又弹出了提示框。我知道把焦点从文本框移开,就不会响应了,但我要的是焦点还是停留在文本框上。不知道还有别的办法没有?没有,就只能记录回车键按下的次数,来进行判断了……不知道能否在MessageBox()后面,把回车键消息从消息队列里取出来,然后扔掉?如果可以,该怎么实现呢? 判断焦点是否在文本框上不就行了if (GetFocus() == &m_Edit){ MessageBox(...);} BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN) { if (GetFocus()==GetDlgItem(IDC_EDIT1)) { AfxMessageBox("按回车后返回到文本框的编辑状态"); return TRUE; } } return CDialog::PreTranslateMessage(pMsg);} 问题找到了,是我没去判断WM_KEYDOWN,只判断了VK_RETURN。 AVIFile怎么将hBitmap写成AVI文件 线程间消息传递的问题 如何用vc得到所执行应用程序所在的盘符? 如何双击listcontrol的一行后能得到整行的内容呢 简单的UDL的问题!!! 如何挑选出包含有指定字符串的数据库记录??? 跳楼吐血价转让自己的VC++开发经典书籍,机会难得阿。 关于GINA 我想学VC,请各位介绍几本入门的书! 请教高手,如何让编译出的lib可以不再需要lib工程中用到的dll文件? 关于SubclassDlgItem无法接受消息的问题 VC6 UDP编程聊天室BUG,求大神解?
不就选中了嘛?
回车,
弹出提示框,
回车确认,
提示框消失,
但是,文本框对这个回车确认又响应了,又弹出了提示框。
我知道把焦点从文本框移开,就不会响应了,但我要的是焦点还是停留在文本框上。不知道还有别的办法没有?
没有,就只能记录回车键按下的次数,来进行判断了……不知道能否在MessageBox()后面,把回车键消息从消息队列里取出来,然后扔掉?如果可以,该怎么实现呢?
{
MessageBox(...);
}
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
{
if (GetFocus()==GetDlgItem(IDC_EDIT1))
{
AfxMessageBox("按回车后返回到文本框的编辑状态");
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}