如何使用按钮更改编辑控制框 [英] How to change edit control box with button
问题描述
我正在通过使用基于对话框的VC ++/MFC应用程序来做计算器程序.在对话框中,添加了一个编辑文本控件和一个按钮.因此,当我在对话框窗口中按下按钮时,需要在该对话框中更改/添加编辑控制框的文本.要显示文本,请在ButtonClicked方法中使用Setsel()和ReplaceSel()方法,但是它不起作用.
显示代码的相关部分,并讲究技巧.
如果始终要更改所有文本,请使用SetWindowText.
basu
Hi,
I am doing calculator program by using dialog based VC++/MFC application. In a diaolg box, added a edit text control and a push button. So I need to change/append the text of edit control box in that dialog when I pressed the push button in dialog window. To display the text am using Setsel() and ReplaceSel() methos in ButtonClicked method, but it''s not working.
Show the relevant portion of your code and relevent artical.
If you always want to change all the text, use SetWindowText.
basu
推荐答案
void operator += (LPCSTR str)
{
CString CurrText;
GetWindowText (CurrText);
if(CurrText!="0")
CurrText += str;
else
CurrText = str;
SetWindowText (CurrText);
}
void CCalciDlg::OnBnClickedCbutton0()
{
if(eqflg==TRUE)
{
SetDlgItemText(IDCRESULT,_T("0"));
eqflg=FALSE;
}
resu += "0";
}
void CCalciDlg::OnBnClickedCbutton1()
{
if(eqflg==TRUE)
{
SetDlgItemText(IDCRESULT,_T("0"));
eqflg=FALSE;
}
resu += "1";
}
void CCalciDlg::OnBnClickedCbutton2()
{
if(eqflg==TRUE)
{
SetDlgItemText(IDCRESULT,_T("0"));
eqflg=FALSE;
}
resu += "2";
}
void CCalciDlg::OnBnClickedCbutton3()
{
if(eqflg==TRUE)
{
SetDlgItemText(IDCRESULT,_T("0"));
eqflg=FALSE;
}
resu += "3";
}
void CCalciDlg::OnBnClickedCbutton4()
{
if(eqflg==TRUE)
{
SetDlgItemText(IDCRESULT,_T("0"));
eqflg=FALSE;
}
resu += "4";
}
void CCalciDlg::OnBnClickedCbutton5()
{
if(eqflg==TRUE)
{
SetDlgItemText(IDCRESULT,_T("0"));
eqflg=FALSE;
}
resu += "5";
}
void CCalciDlg::OnBnClickedCbutton6()
{
if(eqflg==TRUE)
{
SetDlgItemText(IDCRESULT,_T("0"));
eqflg=FALSE;
}
resu += "6";
}
void CCalciDlg::OnBnClickedCbutton7()
{
if(eqflg==TRUE)
{
SetDlgItemText(IDCRESULT,_T("0"));
eqflg=FALSE;
}
resu += "7";
}
void CCalciDlg::OnBnClickedCbutton8()
{
if(eqflg==TRUE)
{
SetDlgItemText(IDCRESULT,_T("0"));
eqflg=FALSE;
}
resu += "8";
}
void CCalciDlg::OnBnClickedCbutton9()
{
if(eqflg==TRUE)
{
SetDlgItemText(IDCRESULT,_T("0"));
eqflg=FALSE;
}
resu += "9";
}
void CCalciDlg::OnBnClickedCbuttonpoint()
{
CString msg;
GetDlgItemText(IDCRESULT,msg);
if(flg==TRUE)
{
msg=msg+''.'';
SetDlgItemText(IDCRESULT,msg);
flg=FALSE;
}
pctrl.EnableWindow(FALSE);
//SetProperty(IDCBUTTONPOINT,WS_VISIBLE,FALSE);
}
void CCalciDlg::OnBnClickedCbuttondiv()
{
num=0;
opflg=4;
UpdateData(TRUE);
num=num1;
SetDlgItemText(IDCRESULT,_T("0"));
}
void CCalciDlg::OnBnClickedCbuttonmul()
{
num=0;
opflg=3;
UpdateData(TRUE);
num=num1;
SetDlgItemText(IDCRESULT,_T("0"));
}
void CCalciDlg::OnBnClickedCbuttonplus()
{
num=0;
opflg=1;
UpdateData(TRUE);
num=num1;
SetDlgItemText(IDCRESULT,_T("0"));
}
void CCalciDlg::OnBnClickedCbuttonminus()
{
num=0;
opflg=2;
UpdateData(TRUE);
num=num1;
SetDlgItemText(IDCRESULT,_T("0"));
}
void CCalciDlg::OnBnClickedCbuttonequal()
{
eqflg=TRUE;
if(num1!=0)
{
UpdateData(TRUE);
switch(opflg)
{
case 1:
num=num+num1;
break;
case 2:
num=num-num1;
break;
case 3:
num=num*num1;
break;
case 4:
num=num/num1;
break;
case 0:
AfxMessageBox(_T("Please Select The Operation"),MB_OK);
break;
}
CString str;
str.Format(_T("%.2f"), num);
SetDlgItemText(IDCRESULT,str);
resu.SetSel(0,-1);
}
else
{
AfxMessageBox(_T("Enter The Second Value"),MB_OK);
}
}
这篇关于如何使用按钮更改编辑控制框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!