一个编辑框,我设置它的ID为IDC_NAME,数据成员为CString的m_strName,最大允许输入字符为六个(但我要最终实现的目的是输入数字)。又有另一个编辑框,它的ID为IDC_OUT,数据成员也为CString类型。
我要实现这样一个目的:
当我向m_strName中输入数字时,只有在000000-100000,300000-400000范围内时,在第二个编辑框中显示刚才输入的内容,当不再这个范围内时,由AfxMessageBox给出错误信息,并且第二个编辑框变灰禁止输入或者显示。
我的问题是:
用哪个函数如何实现上述功能。在我自己的程序中,总是不能同时实现上述两个功能。 补充:我是直接生成的基于Dialog的应用程序
我要实现这样一个目的:
当我向m_strName中输入数字时,只有在000000-100000,300000-400000范围内时,在第二个编辑框中显示刚才输入的内容,当不再这个范围内时,由AfxMessageBox给出错误信息,并且第二个编辑框变灰禁止输入或者显示。
我的问题是:
用哪个函数如何实现上述功能。在我自己的程序中,总是不能同时实现上述两个功能。 补充:我是直接生成的基于Dialog的应用程序
BOOL CMy11Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
int m_data;
if(pMsg->message == WM_KEYDOWN){
if(pMsg->wParam == VK_ESCAPE){
return true;
}
if(pMsg->wParam == VK_RETURN){
UpdateData(true);
m_data=atoi(m_strName);
if(m_data<=100000&&m_data>=000000||m_data<=400000&&m_data>=300000){
m_out=m_strName;
GetDlgItem(IDC_OUT)->EnableWindow(TRUE);
GetDlgItem(IDC_OUT)->SetFocus();
UpdateData(false);
return true;
}
else{
m_out=m_strName="";
GetDlgItem(IDC_OUT)->EnableWindow(FALSE);
AfxMessageBox("错误,请输入正确的值!",MB_OK||MB_ICONEXCLAMATION);
UpdateData(false);
return true;
}
} } return CDialog::PreTranslateMessage(pMsg);
}