1.2.3 关联成员变量本节介绍了如何为控件关联成员变量。 1.实例说明本示例是一转换程序,可以将汉字一到九转换成数字1~9,也可以将数字1~9转化成汉字一~九,如图1-50所示。
图1-50 Ex010203.exe界面 2.实现具体步骤如下: (1)建立一个基于对话框的工程Ex010203。 (2)增加一个编辑框,ID为IDC_NUM,关联一个整型变量m_iNum,最小值0,最大值9,如图1-51所示;在后面添加一个按钮,ID为IDC_NTOC,标题为“数字到汉字”。增加一个编辑框,ID为IDC_CHINESE,为其关联一个字符串型变量m_strChinese,并限制最大长度为2,如图1-52所示。增加一个按钮,ID为IDC_CTON,标题为“汉字到数字”。
图1-51 控件关联成员变量
图1-52 控件关联成员变量 (3)分别为两个按钮增加响应函数,代码如下: void
CEx010203Dlg::OnNtoc() {
CString strChinese[] = {"零","一","二","三","四","五","六","七","八","九"};
UpdateData(true);//取得输入内容
if(m_iNum < 0 || m_iNum > 9 )
{
AfxMessageBox("请输入一个0到9的数字");
return ;//出错了
}
m_strChinese = strChinese[m_iNum];
UpdateData(false);//更新输出 } void
CEx010203Dlg::OnCton() {
CString strChinese[] = {"零","一","二","三","四","五","六","七","八","九"};
UpdateData(true);//取得输入内容
int i = sizeof(strChinese)/sizeof(strChinese[0])
-1 ;
for(; i >= 0 ; i-- )
{
if(m_strChinese == strChinese[i] )
break ;//符合要求
}
if(-1 == i)
{//输入非法
AfxMessageBox("输入错误,请输入一到九的汉字");
return ;
}
m_iNum = i ;
UpdateData(false);//更新输出 } (4)为了方便用户,在第一个编辑框之后,再添加一个数字滚选按钮,ID为IDC_NUM_SPIN,把“Set buddy integer”属性选上,并为其关联一个控制型的变量CSpinButtonCtrl m_spinNum。在对话框的初始化函数中加上初始数字滚选按钮的代码。 BOOL CEx010203Dlg::OnInitDialog() { //… m_spinNum.SetBuddy(GetDlgItem(IDC_NUM)); m_spinNum.SetRange(0,9);//设置范围为0-9 return TRUE; // return TRUE unless you set the focus to a control }
|
|