建立了一个基于对话框的应用程,当我把焦点移到Edit Box控件上,然后按回车以后,程序自动退出了。后来我试着把焦点移到List Box控件上,然后回车,也会出现这种现象。不过当我把焦点移到自定义的Button控件上,按回车后,程序却没有退出,而是响应了相应的按钮消息。这是为什么呢?难道在基于对话框的应用程中,除了Button控件外,其它所有的通用控件都有默认的消息处理函数去响应回车键盘消息吗?
解决方案 »
- 用远线程实现文件自删除
- 请教我换了新皮肤后,工具栏上的字体就显示不出来了,不知道怎么了?
- 傅里叶变换
- 目前播放器的桌面背景播放功能是如何实现的,把动态视频做为桌面背景,其他图标,任务栏等一切照常使用
- 一个单文档程序,如何在鼠标移到工具栏的按钮上时,鼠标变成小手的形状?
- 大家来写个程序,或给个算法也行!
- 如何使tree的某个叶子或结点DisEnable=================
- 如何使用NetMessageBufferSend函数向同一域中计算机发送消息,通过信使服务
- vc 窗口置最底层问题?
- NT的服务程序???
- 大家帮我看看这代码,为什么运行是什么都没看到啊?急
- 请问为什么在OnprepareDC含数里的pInfo参数不能使用啊.
void CMyDlg::OnOK()
{
// CDialog::OnOK();
}
或者直接屏蔽回车
屏蔽回车
BOOL CCXXX::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_RETURN://屏蔽回车
return TRUE;
case VK_ESCAPE://屏蔽Esc
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
{
if(pMsg->message == WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_RETURN://屏蔽回车
return TRUE;
case VK_ESCAPE://屏蔽Esc
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
不过后来我新建了一个多文档的应用程序,通过菜单来打开一个自定义的对话框,这里也存在上面的问题,于是我也重载了OnOk()函数,但是此时为什么又出现对话框消失的问题了,这又是为什么呢?我觉得没有道理。后来我打断点跟踪调试,发现是CDialog类的OnOk()响应了回车键消息,为什么不是自定义的对话框类的OnOk()函数?