14.MFC高级控件使用教程与开发技巧

1.前言

通过前面两章的学习,现在你已经有能力开发一些简单的GUI软件了。

而想要实现更复杂的软件,就需要学习使用更多复杂的控件,但由于MFC的资料并不是那么的好查找,所以为了节约大家时间,本章将对MFC的更多控件进行使用介绍。

如果急着赶学习进度的话,本章不需要细看,在实际开发软件时,需要这些控件的时候回来看看怎么用就行了。

甚至在你学了Qt之后,可能都不想使用MFC开发软件,那自然也就没必要学本章的内容了。

2.项目建立

过程与前面章节相同,建立基于对话框的MFC项目,项目名为day14--Control,至于其它的选项则任意。

然后将自动生成的控件删除掉,将紫线拖到最大(这一步不是必要的):

image-20231210160816501

3.Combox box

首先来看Combox box控件,这个控件也很常用,比如在填写个人信息,选择自己所在省时,一般就会用到它:

image-20231210161026207

现在它里面还啥都没有,所以我们要为它添加一些选项,比如各个省名。

添加方法主要有两种,第一种是直接在属性界面里面添加,各个数据之间用;分隔,不过这些数据是要你运行程序后才能看到的:

image-20231210161256797

上面是第一种方法,很明显有点不方便,如果太多的话,一个一个的手动添加太麻烦了。

所以就有了第二种方法,即在代码中添加,首先还是老方法,先为控件绑定一个控件变量:

image-20231210161613422

然后调用AddString函数添加数据项即可:

image-20231210161807841

现在再运行一下试一试:

image-20231210161907941

是不是也能添加项!

但还有问题要解决,一般这种选择的应该要有一个默认的,我们这里最开始竟然是空白的,所以还得调用一下函数SetCurSel

image-20231210161958763

这个函数的意思是设置当前选项(set current select),即所有选项添加时,会默认从0开始递增,每一个选项都与其位置对应。

这里我们选择0,即默认显示第一个。

然后还有一个问题要解决,那就是既然我们这个控件是用来接受用户输入的,那么我们还需要得到用户选择的选项:

image-20231210162140775

方法很简单,就是调用以前常用的一个函数GetWIndowsText,因为这个控件也是从CWnd类继承下来的,所以可以使用,然后运行看一看:

image-20231210162221350

因为我是直接写在窗口的初始化函数中的,所以在窗口显现出来前,弹窗就先行创建出来了。

由于前面代码我们选择了显示默认0位置,即北京,所以这里就显示出了北京。

4.List Box

下面要进行介绍的控件是List Box,它相比于其它控件要复杂的多:

image-20231210162411258

一看,简直平平无奇,和编辑框放大后几乎一摸一样,但先不管这么多,我们先为它绑定一个控件变量:

image-20231210162458128

然后在代码中给它添加数据,运行一下试一试:

image-20231210162638811

是不是感觉和上面的Combo Box很像?不同之处可能就是这个列表控件是直接将所有选项都拿出来给用户看的。

但其实还有一点不一样,那就是这个控件允许多选:

image-20231210162741874

在该属性中,将这个选择设置为多项即可,然后我们再运行程序,就可以选择多个了:

image-20231210162812365

那么问题来了,我们应该如何选择默认选项,以及如何得到用户选项呢?

image-20231210163014082

因为这里我们是多选项,所以调用SelItemRange函数,即0到2位置,都将被选择上。

如果是单选,应该就需要调用上面被我注释掉的那一行代码,这需要参考官方文档,如果按F1搜索不到的话,并不是没有,直接去浏览器中搜就行。

作者:余识
全部文章:0
会员文章:0
总阅读量:0
c/c++pythonrustJavaScriptwindowslinux