- 按钮控件的介绍
界面设计如下:
要将Group属性设为True才可以添加变量:
给4个Radio Button关联变量:
有时候我们在更改控件ID的时候,会提示出:
但实际上已经没有这个ID了,只要我们重新编译一下再改就行。关联完变量之后会在MFCButtonDlg.h中多出这几个成员变量:
给Button添加代码如下:
运行结果如下:
- 使用编辑框控件
记事本的中间就是一个编辑框。
界面设计如下:
给这些编辑框依次添加变量:
通过在这里设置属性来决定对其方式:
多行文本的实现要设置三个属性:
和
这样带滚动条的编辑框会出现:
竖着的滚动条则这样设定:
效果如下:
文版框中隐藏字符设置属性:
效果如下:
设置只读属性:
效果如下:
其它属性的设置类似,这里不一一列举了,运行效果如下:
- 列表框控件的使用
界面设计如下:
给ListBox关联变量:
给编辑框关联变量:
给AddButton添加代码如下:
运行后发现,即便编辑框里不为空,还是会弹窗:
Why?原因在于我们的编辑框并没有相应Change事件:
再次运行:
添加成功。
删除动作:
- 组合框控件的使用
界面如下:
给ComBox添加成员变量:
给下边的编辑框添加内容:
给Button添加代码:
运行:
仅仅是这样是无法把szFruit添加到ComBox中的。因为EditBox初始时是空的,当你向EditBox中填入数据时,必须去UpdateData才行,否则EditBox一直认为自己是空的。
而如果我们添加了这两句:
那么一上来初始化时就会在ComBox中显示出内容:
但是一上来初始化时ComBox里都是空的,太不美观,我们一上来要往里边添加一些内容:
我们下面要实现的功能就是当选中ComBox中的某个内容时,往中间的EditBox中去显示。
先给中间两个EditBox添加变量:
添加代码:
然而运行后我们发现,当改变ComBox后,中间Edit框并没有发生变化:
原因很简单,是因为我们不应该响应Change事件,而应该响应Select事件:
还是刚才上面的代码:
运行结果如下:
- 阶段性总结:
我们发现,其实,这些空间的Change时间、Button的消息响应等,都是主对话框的成员函数。
这些成员函数是消息响应函数,是当你这个消息或事件发生的时候,就运行了这个函数。比如,当按下Button按钮时,就运行了void CMFCComBoxDlg::OnBnClickedButton1();再ComBox空间Change的时候,就运行了void CMFCComBoxDlg::OnCbnSelchangeCombo1()
函数。