基于对话框的MFC程序的显示与隐藏问题
在建立基于对话框的MFC程序时,假设其中有两种优化算法,如何选择方法a,其相应的参数输入框显示,而与方法b无关的参数输入框隐藏,如何实现?其中参数输入框都有value类型...
在建立基于对话框的MFC程序时,假设其中有两种优化算法,如何选择方法a,其相应的参数输入框显示,而与方法b无关的参数输入框隐藏,如何实现?
其中参数输入框都有value类型的变量。 展开
其中参数输入框都有value类型的变量。 展开
1个回答
展开全部
下面所写,仅供参考:
void CPaintDlg::OnChangeEdit1() //编辑框的消息响应
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
CString str;
m_edit1.GetWindowText(str);
char ch;
if(m_way){
for(int i=0; i<str.GetLength();i++){
ch = str.GetAt(i);
if((ch < 'a' || ch > 'z') && (ch < 'A' || ch > 'Z')){
m_edit1.ShowWindow(SW_HIDE);
MessageBox("只能输入字母!", "注意");
m_edit1.SetWindowText("");
}
}
}else{
for(int i=0; i<str.GetLength();i++){
ch = str.GetAt(i);
if(ch < '0' || ch > '9'){
m_edit1.ShowWindow(SW_HIDE);
MessageBox("只能输入数字!", "注意");
m_edit1.SetWindowText("");
}
}
}
// TODO: Add your control notification handler code here
}
void CPaintDlg::OnButton1() //Button1是“方法1”,只能输入字母
{
// TODO: Add your control notification handler code here
m_edit1.SetWindowText("");
m_edit1.ShowWindow(SW_SHOW);
m_edit1.EnableWindow(true);
m_way = true;
}
void CPaintDlg::OnButton2() //Button2是“方法2”,只能输入数字
{
// TODO: Add your control notification handler code here
m_edit1.SetWindowText("");
m_edit1.ShowWindow(SW_SHOW);
m_edit1.EnableWindow(true);
m_way = false;
}
void CPaintDlg::OnChangeEdit1() //编辑框的消息响应
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
CString str;
m_edit1.GetWindowText(str);
char ch;
if(m_way){
for(int i=0; i<str.GetLength();i++){
ch = str.GetAt(i);
if((ch < 'a' || ch > 'z') && (ch < 'A' || ch > 'Z')){
m_edit1.ShowWindow(SW_HIDE);
MessageBox("只能输入字母!", "注意");
m_edit1.SetWindowText("");
}
}
}else{
for(int i=0; i<str.GetLength();i++){
ch = str.GetAt(i);
if(ch < '0' || ch > '9'){
m_edit1.ShowWindow(SW_HIDE);
MessageBox("只能输入数字!", "注意");
m_edit1.SetWindowText("");
}
}
}
// TODO: Add your control notification handler code here
}
void CPaintDlg::OnButton1() //Button1是“方法1”,只能输入字母
{
// TODO: Add your control notification handler code here
m_edit1.SetWindowText("");
m_edit1.ShowWindow(SW_SHOW);
m_edit1.EnableWindow(true);
m_way = true;
}
void CPaintDlg::OnButton2() //Button2是“方法2”,只能输入数字
{
// TODO: Add your control notification handler code here
m_edit1.SetWindowText("");
m_edit1.ShowWindow(SW_SHOW);
m_edit1.EnableWindow(true);
m_way = false;
}
追问
谢谢你,问题已解决。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询