如何给一个MFC的Edit Control赋默认值?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39449570/article/details/78900878

两种方法
一种在对话框的OnInitDialog()里面调用GetDlgItem(控件ID)得到控件指针,再SetWindowText()设置显示字符
例程如下:

CString str1;
    ((CEdit *)GetDlgItem(IDC_EDIT1))->GetWindowText(str1);//获得
    const size_t strsize1 = (str1.GetLength() + 1) * 2; // 宽字符的长度;
    char * pstr1 = new char[strsize1]; //分配空间;
    size_t sz1 = 0;
    wcstombs_s(&sz1, pstr1, strsize1, str1, _TRUNCATE);

关键的提取输入字符的代码:
((CEdit *)GetDlgItem(IDC_EDIT1))->GetWindowText(str);
函数表示从控件读取String,但注意的是system()里的变量类型是const char*,而这里是CString类型,故而有了中间一长段由CString转const char*的代码。
另一种,关联一个成员变量,在对话框构造函数里对成员变量赋初值

添加成员变量法
选择Edit Control控件,右击->添加变量(B),选择控件ID(第2步设置),类别(选择value),修改变量类型和变量名(一般以m_开头),点完成后,会在.h文件创建的对话框类中创建变量m_,在.cpp文件CAdditionDlg:: DoDataExchange中添加DDX_Text(pDX,Edit Control控件ID,m_);(相当于将控件与变量进行绑定,可以互相传递信息)。

注:CAdditionDlg:: DoDataExchange(),MFC默认的数据传递函数,但不会自己调用,用户需在程序中调用CDialogEx::UpdateData(),由 UpdateData()调用DoDataExchange()。UpdateData(TRUE)数据从控件控件传给变量,UpdateData(False)则相反。

展开阅读全文

没有更多推荐了,返回首页