1 关联变量
上一篇我们在讲自定义控件的时候如何关联变量,但是那种关联的是自定义控件类,并且选择Control,代表一个类只能关联一个对象变量。而我们这里所讲的关联变量是传统的类型,即已有的类,选择的类型不是Control,而是Value,例如CString,int这些。
1)右击添加变量。
2)按如下选择,这样对话框类就多出一个成员变量。
2 关联变量简单案例
实际上面就已经与对话框关联完变量,下面我们简单演示一下使用这个变量,按下按钮获取CEdit的内容。
1)添加一个按钮。
2)双击按钮跳到槽函数,即响应函数。
3)编写代码。
首先在OnInitDialog初始化编辑区的默认值为123。
BOOL CjiyuduihuakDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
m_str = TEXT("123");
//更新内容到编辑区
UpdateData(FALSE);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
然后在按钮的响应函数中更新编辑区的内容到变量。这样当我们输入内容到编辑区,然后按下按钮,我们的变量m_str就会改变。
void CjiyuduihuakDlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
//更新代码到变量m_str中
UpdateData(TRUE);
MessageBox(m_str);
}
结果:
开始默认值为123。输入abc后按下按钮变量值随之更新。
3 关于程序所有关联变量的查看
通过下面的方法我们就可以看到程序的所有关联变量。