第一章、控件使用
添加变量
如果我们要在程序中访问对话框中的控件,就必须给这些控件分别添加变量。所谓添加变量,就是给程序中要用到的控件对象定义一个与之关联的变量作为控件的代理。以后用到该控件时,访问其代理变量即可。就是说,一个变量代表一个具体的控件对象。例如,要获得用户在编辑框中输入的内容,就得给编辑框添加变量,通过调用该变量的相关函数即可获得编辑框的输入内容。
右击控件,Class Wizard->Member Variables->Add Variable...选择要添加的控件添加变量。
按纽控件的类型Control和Value的区别
control:为该控件生成一个对应的对象(如CEdit对象,CButton对象),用来控制该控件,调用控件对应方法等。
value:为该控件生成一个相应的变量来反应其内容,如可用CString来对应CEdit控件,其用DDX(数据交换),DDV(数据验证)来保证该控件内容与该变量的一致性。
control就是关联控件类对象,如CEdit,CButton
value就是关联基本类型的变量,如UINT,CString
关联control类对象可以利用对象对控件进行操作,关联value类变量就只能对控件取值
添加代码
右击控件,选择Class Wizard->Message Maps->Add Function...选择控件对象,选择控件消息类型(即由何种操作触发的消息)->Edit Code。
列表框的用法
列表框的初始化操作在窗口的初始化函数OnInitDialog()中完成。
在工作空间窗口中,选择ClassView选项卡,然后展开工程的dlg类,打开初始化函数OnInitDialog()。
在OnInitDialog()的“//TODO:Add extra initialization here”一行的下面、return的前面添加初始化语句:(列表框变量名).AddString("内容");
函数AddString()的功能是在列表框中添加一个选项。但程序运行时列表框中显示出来的选项次序,并不一定和我们添加时的次序一致,而是按照字典的次序排列的,要想和我们添加时的次序一致。要做如下修改。
将Sort选项去掉。
列表框的响应函数也是如此,右击控件,从Message栏中设置。
涉及函数
GetWindowText()
编辑框类CEdit的成员函数,用来获得编辑框输入的内容,并把内容存到一个字符串变量中。
atof()
该函数将数字字符串转化为浮点型数值。
_gcvt()
跟atof相反,用来把数值转化为数字字符串。
UpdateData()
该函数的作用与参数的值有关:
参数值为false时,更新窗口,用控件变量的值更新控件的内容。
参数值为true时,将控件内容映射到对应变量中。EnableWindow()
Cbutton的基类CWnd的函数,TRUE表示按钮状态为enable,FALSE表示设置成disable状态。
Format()
CString类的函数,用来把数据转换成CString类型的字符串。
release
用debug生成的exe可执行文件通常比较大,如果想得到较小的可执行文件,可以用release。具体做法:(1)选择菜单栏的Build->Batch Build命令。
(2)单击Build按钮,系统会进行release编译。