为什么VC遍写的基于对话框程序,执行的时候,一按回车键就消失了,怎么解决?就是
按回车键程序不消失??
按回车键程序不消失??
解决方案 »
- 一个OCX发布到网页上的问题,求指导啊!
- 关于CDataPathProperty
- 采用bitblt绘图必须装载CBitmap吗?
- VC中rc文件被自动改变,纠结........
- 关于数据库连接路进的问题
- 用ShFormatDriver格式化时,要隐藏显示与格式化有关的窗体,怎样实现?
- 如何让一个消息处理函数拒绝接收某个指定的消息(但是让该消息继续存活,可以由其他处理函数接收)?有没有实现可能?
- link报错
- 怎么判断文件是否已经创建,如果有的话,就追加,没有救create,怎么做好
- 在VC中如何存取图象和音频?
- 送分题:win2000server应该装sqlserver2000哪个版本阿
- 在MSDN中怎么看到类的继承表?
CDialog::ok()注销就可以了
1、重新指定或不指定一个默认按钮,查看按钮的属性,其中有一个“Default Button”属性,去掉对号即可。但这种情况下,如果按Enter的话,有焦点的按钮对应的代码仍然会被调用。2、重载OnOk函数
代码举例如下:
// 在这里处理Enter消息
void CDlgLogIn::OnOK()
{
CWnd* pCtrl = GetFocus(); // 当前输入框
CWnd* pCtrlNext = pCtrl; // 下一个输入框 int ctrlID = pCtrl->GetDlgCtrlID(); // 当前输入框ID
switch (ctrlID)
{
case IDC_EDIT_USERCODE: // 将焦点移至密码输入框
pCtrlNext = GetDlgItem(IDC_EDIT_USERPWD);
// 设置焦点至下一个输入框
pCtrlNext->SetFocus();
break; default: // 验证密码
OnButtonOK();
break;
}}
这里处理的是,用户在一个登录对话框中输入用户名后,按Enter,光标转到密码输入框,再按Enter验证密码。这样做有两个前提:一是对话框中不能有ID_OK按钮(也就是缺省的“确定”按钮对应的ID,要改成别的ID,二是,不能有缺省按钮。希望能对你有帮助。
//CDialog::OnOk();
1、重新指定或不指定一个默认按钮,查看按钮的属性,其中有一个“Default Button”属性,去掉对号即可。但这种情况下,如果按Enter的话,有焦点的按钮对应的代码仍然会被调用。2、重载OnOk函数
3、你只要按住Ctrl+d,在其他按钮上点一下就行
BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message ==WM_KEYDOWN)
{
if(pMsg->hwnd==CButton1.GetSafeHwnd ())
{
....
}
}
}
return CDialog::PreTranslateMessage(pMsg);
}