1。 我建了一个基于对话框工程,里面新加了一个自己写的类,我在.h文件中,类的析构函数和另两个函数在类中实现了,这样行吗?(还是都要在.cpp中实现?)
2。 工程中有两个Edit控件分别输入多项式,点OK按钮,在一个Static text控件中显示两多项式相加结果,你们看这样行吗?(请指教!)
void CCaculateDlg::OnOK()
{
// TODO: Add extra validation here
CString edit1;
Cstring edit2;
stack<float>s1; //自定义模版类对象S1,S2
stack<char>s2;
float n1,n2,n3;
if(m_edit1.GetWindowText(edit1)==0||m_edit2.GetWindowText(edit2)==0)
AfxMessageBox("多项式1,2不能为空");
n1=caculator(edit1,s1,s2); //计算两多项式
n2=caculator(edit2,s1,s2);
n3=n1+n2; //相加
m_display.SetWindowText(n3);
CDialog::OnOK();
}
2。 工程中有两个Edit控件分别输入多项式,点OK按钮,在一个Static text控件中显示两多项式相加结果,你们看这样行吗?(请指教!)
void CCaculateDlg::OnOK()
{
// TODO: Add extra validation here
CString edit1;
Cstring edit2;
stack<float>s1; //自定义模版类对象S1,S2
stack<char>s2;
float n1,n2,n3;
if(m_edit1.GetWindowText(edit1)==0||m_edit2.GetWindowText(edit2)==0)
AfxMessageBox("多项式1,2不能为空");
n1=caculator(edit1,s1,s2); //计算两多项式
n2=caculator(edit2,s1,s2);
n3=n1+n2; //相加
m_display.SetWindowText(n3);
CDialog::OnOK();
}
2 ok change this ID
2 ok but:int CWnd::GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const;void CWnd::GetWindowText( CString& rString ) const;
计算函数是你自己实现的吧,思想没错,看你怎么实现了。还有要注意UpdateData的使用,否则可能得不到正确的结果。
还有 UpdateData怎摸用啊,在我这段程序里??
MSDN上将的很清楚.
以用这中方式。
2.首先更正以下你的一点错误。你把最后一行屏蔽掉,不然会关闭你那个对话框。
对于UpdateData函数的使用,你如果要从屏幕输入就在函数前面加UpdateData(TRUE)
把你输入的数据传给变量。如果要把结果显示到屏幕上的话就用UpdateData(FALSE)来显
示结果到屏幕上。
把float型变量格式化为字符串,然后再转变为char*类型。
float num;
str.format("%6.2f",num);