我在单文档中插入Dialog 运行时候在Edit控件中按下Enter 就退出了!
if(GetDlgItem(IDC_EDIT1)->GetFocus())
{
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
{ UpdateData(TRUE);
if(m_Edit=="")
{
return MessageBox("密码不能为空!","警告");
}
}
} 就是在Edit控件的时候弹出了MessageBox,在按TAB 切换在“取消”按钮上按下Enter 也会弹出MessageBox;
GetDlgItem(IDC_EDIT1)->GetFocus()这个不是已经指定ID的么?我又else if(GetDlgItem(IDC_BUTTON1)->GetFocus()))一下,一点效果都没,求高手们别潜水了!帮忙看下啊
if(GetDlgItem(IDC_EDIT1)->GetFocus())
{
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
{ UpdateData(TRUE);
if(m_Edit=="")
{
return MessageBox("密码不能为空!","警告");
}
}
} 就是在Edit控件的时候弹出了MessageBox,在按TAB 切换在“取消”按钮上按下Enter 也会弹出MessageBox;
GetDlgItem(IDC_EDIT1)->GetFocus()这个不是已经指定ID的么?我又else if(GetDlgItem(IDC_BUTTON1)->GetFocus()))一下,一点效果都没,求高手们别潜水了!帮忙看下啊
处理方法:去除OnOK和OnCancel的默认处理
1.分别给OK 和 Cancel 按钮添加点击消息
void CParamSetDlg::OnOK()
{
// 注意不加处理
}
void CParamSetDlg::OnCancel()
{
//注意不加处理
}
2.去掉OK按钮的 Default属性
3.改变OK按钮的ID(如:ID_OK)后再给其添加点击消息
void CTest1Dlg::On_Ok()
{
// TODO: Add your control notification handler code here
CDialog::OnOK();
}
完成以上步骤 回车时不会退出,按Esc时退出
注:如果Cancel按钮也按OK按钮同样处理则Esc失效
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN
&& pMsg->wParam == VK_RETURN)
{
if( !(GetStyle() & ES_WANTRETURN) ) //NO ES_WANTRETURN Style
return TRUE;
}
return CEdit::PreTranslateMessage(pMsg);
}
那我的enter键就不能响应“取消BUTTON”了
3L我把你的代码试了一下,创建了NEWEdit类,你的方法是改变他的风格,但是运行起来也不行啊,能说下到底什么实现么,谢谢了
CEdit mEdit; ===> CNewEdit mEdit;
那如何得到编辑框中的内容的?GetWindowText()这个函数不要要在CNewEdit类中重载?
小弟愚笨 请教高手,怎么弄,重载的重载哪个函数?谢谢
给edit关联一个映射变量就可以
因为从CEdit派生一个新类,关联变量 运行错误
'GetWindowsText' : is not a member of 'CNewEdit'
谢谢了