在VS2005 MFC中"Edit Control"控件添加变量(int)的问题
2011-08-27 17:20等待那份情 | 分类:VC++ | 浏览2582次
我已经添加了一个变量m_time,类别是value,变量类型是int
请问,怎么将编辑框中的数字赋值到m_time中?希望可以给出详细C++代码。
ps:我本以为UpdateData(TRUE);就可以将编辑框中的数字赋值到m_time中,但是m_time貌似不是全局变量,根本不可以调用。
分享到:
2011-08-28 01:22 提问者采纳
m_time可以是类成员变量。
应该是添加对话框类的控件变量,会自动生成相关代码,也可以在对话框的DoDataExchange函数手动添加
void CxxDlg::DoDataExchange(CDataExchange* pDX)//注意这个函数
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT3, m_time);//自己手动添加。
}
追问
我的意思是怎么赋值给m_time,然后在按钮中调用这一变量?
回答
在DoDataExchange中用 DDX_Text建立了m_time到ID为IDC_EDIT3的edit控件关联后就可以
调用UpdateData(TRUE)将数据从对话框的控件中传送到对应的数据成员,即将编辑框中的数字赋值到m_time中。
中,调用UpdateData(FALSE)则将数据从数据成员中传送给对应的控件。即将编辑框中的数字显示为m_time的值。
比如要在edit中显示3
m_time= 3;
UpdateData(FALSE)
此时edit中显示的字符为"3"
要让m_time保存edit中显示的"1",那么
调用UpdateData(TRUE);
此时m_time的数值就变成1了。
追问
貌似m_time不是全局变量啊。。
回答
2011-08-27 17:20等待那份情 | 分类:VC++ | 浏览2582次
我已经添加了一个变量m_time,类别是value,变量类型是int
请问,怎么将编辑框中的数字赋值到m_time中?希望可以给出详细C++代码。
ps:我本以为UpdateData(TRUE);就可以将编辑框中的数字赋值到m_time中,但是m_time貌似不是全局变量,根本不可以调用。
分享到:
2011-08-28 01:22 提问者采纳
m_time可以是类成员变量。
应该是添加对话框类的控件变量,会自动生成相关代码,也可以在对话框的DoDataExchange函数手动添加
void CxxDlg::DoDataExchange(CDataExchange* pDX)//注意这个函数
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT3, m_time);//自己手动添加。
}
追问
我的意思是怎么赋值给m_time,然后在按钮中调用这一变量?
回答
在DoDataExchange中用 DDX_Text建立了m_time到ID为IDC_EDIT3的edit控件关联后就可以
调用UpdateData(TRUE)将数据从对话框的控件中传送到对应的数据成员,即将编辑框中的数字赋值到m_time中。
中,调用UpdateData(FALSE)则将数据从数据成员中传送给对应的控件。即将编辑框中的数字显示为m_time的值。
比如要在edit中显示3
m_time= 3;
UpdateData(FALSE)
此时edit中显示的字符为"3"
要让m_time保存edit中显示的"1",那么
调用UpdateData(TRUE);
此时m_time的数值就变成1了。
追问
貌似m_time不是全局变量啊。。
回答
不是全局变量有什么关系呢,你可以用dlg.m_time之类的语句来访问,只要把m_time定义成Public的不就行了。
/
先读入输入一个字符后Edit中的整个字符串(之前已经规定了新输入的字符一定在最后),然后截取最后一个字符,并将截取的字符用SetWindowsText命令显示在Edit中
void CCalculatorDlg::OnEnChangeEdit1()
{
if (m_Change == true)
{
CString str;
GetDlgItemText(IDC_EDIT1, str);
SetDlgItemText(IDC_EDIT, str.Right(1));/
m_Change = false;
}
}