
我给你写个例子:
CString num1,num2;
char num[256]={'\0'};
float num3=0; GetDlgItemText(IDC_EDIT_NUM1,num1);//获取输入的浮点数
1
GetDlgItemText(IDC_EDIT_NUM2,num2);//获取输入的浮点数2
num3 = atof(num1)+atof(num2);//将字符串转换为浮点数并求和
sprintf(num,"%f",num3);//将浮点数转换为字符转
SetDlgItemText(IDC_EDIT_NUM3,num);//显示运算结果要这样你必须创建一个非模态对话框
,而不是模态对话框。这个过程比较麻烦,还要考虑一些细节。下面的步骤可供你参考,写得不全面(假设你的工程名为Test,对话框的ID为IDD_DIALOG1,其类名为CMyDlg,编辑框的ID为IDC_EDIT1):
1、在TestViewh的开头包含MyDlgh,然后为其添加一个CMyDlg类型的变量pModallessDlg,在CTestView的构造函数中将其初始化:pModallessDlg = NULL;
2、在需要d出对话框的地方添加如下代码:
if (!pModallessDlg)
{
pModallessDlg = new CMyDlg;
pModallessDlg->Create(IDD_DIALOG1);
pModallessDlg->GetDlgItem(IDC_EDIT1)->SetWindowText("编辑框的内容");
pModallessDlg->ShowWindow(SW_SHOW);
}
else
pModallessDlg->SetActiveWindow();
这个仅仅是测试一下改变编辑框文本这个功能,没有处理对话框的消息,要处理对话框的消息必需重载它的OnOK、OnCancel等函数,并向视图类发送消息。在视图类中处理这些消息时要记得消毁对话框并delete pModallessDlg。
利用CFont类的成员函数,CreateFont()和SetFont()函数,具体可参见MSDN
CFont Seg7Font;
CEditColor m_PressureWnd;
CEditColor m_TemperWnd;
CDC pDC = GetDC();
Seg7FontCreateFont(-MulDiv(2,-pDC->GetDeviceCaps(LOGPIXELSY), 6),
0,0,0,FW_NORMAL,0,0,0,ANSI_CHARSET,
OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY,
VARIABLE_PITCH|FF_SWISS,_T("NI7SEG"));
m_PressureWndSetFont(&Seg7Font);
m_TemperWndSetFont(&Seg7Font);
CharFontCreateFont(-MulDiv(2,-pDC->GetDeviceCaps(LOGPIXELSY), 6),
0,0,0,FW_NORMAL,0,0,0,ANSI_CHARSET,
OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY,
VARIABLE_PITCH|FF_SWISS,_T("Airial"));
m_StaticPSetFont(&CharFont);
m_StaticTSetFont(&CharFont);
m_StaticCSetFont(&CharFont);以上就是关于MFC中一个Edit Control中输入浮点数,如何获取并在程序内计算。GetDlgItemInt只能是整形,要小数点


评论列表(0条)