《Windows编程循序渐进》——基本控件

  • 按钮控件的介绍

界面设计如下:

要将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()
函数。

 

posted @ 2016-07-17 10:55  _No.47  阅读(782)  评论(0编辑  收藏  举报