我一回车就退出了
ft
ft
解决方案 »
- 请问,我把c:\windows\explorer.exe删除掉后,过会后又会出现了?另外,我直接双击它,出现的是资源管理器,而如果在任务管理器中先把它停掉后,再
- FtpCommand 无法正确传送编码
- 关于VC打印的一些东西
- DLL 中添加对话框的问题 在线等
- 能够在对话框中使用ON_UPDATE_COMMAND_UI吗?
- typedef HANDLE EVENTHANDLE 和 #define EVENTHANDLE HANDLE 有何区别??
- 如何使用createdibitmap生成rgb565的位图?
- 30,关于ping程序的一个简单问题!
- CDHtmlDIalog 窗体显示问题
- 安装VC++6.0后,新建的projects里面没有MFC选项?
- vc与mysql组合
- 如何取得thread的句柄
void CXXXDlg::OnOK()
{
// TODO: Add extra validation here
// CDialog::OnOK();
}
若是单行,需要重载OnOK()和ONCancel()。
好了,不废话了,其实原因很简单:因为当你按下了回车时,WINDOWS查看当前输入焦点,如不在按钮上,再看哪个按钮是默认的(资源编辑器按钮中的default属性)。如果连默认按钮都没有,应用程序框架就把消息传给对话框的OnOK()虚函数。所以,只要你把这个函数重载一下,就可以了。基本上和那位MS MVP讲的差不多。
具体方法如下:
1。去掉OK按钮的默认属性。
2。为OK按钮添加消息处理函数。OnOK()
3。将OnOK中CDIalog::OnOK()去掉//如果你的对话框类直接继承自CDialog
4。将OK按钮ID重命名一般改为IDC_OK
5。为OK按钮重新添加消息处理函数。一般命名为OnClickedOK()这里是真正的处理按钮被按下的函数。
这样就可以了
这个是在类向导里面Message里面添加该函数的
BOOL CServerDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN){
//在这里添加你要程序在接受到键盘消息后的动作
return TRUE;
} return CDialog::PreTranslateMessage(pMsg);
}