MFC应用程序控件使用教学案例设计
作者:杜青
来源:《电脑知识与技术》2016年第35
        摘要:为了便于学生了解和掌握MFC应用程序中控件的使用,设计了一个数字三角形案例。通过案例,学生可以更直观地学习控件的创建、属性设置、消息映射、调用控件类成员函数操作控件以及改变控件背景的方法。采用这种案例式教学方法进行课堂教学,使单调、抽象的知识具体化、形象化,提高了学生的学习兴趣,取得了较好的教学效果。
        关键词: MFC;控件;教学案例
        中图分类号:G64 文献标识码:A 文章编号:1009-3044201635-0114-03
        Teaching Case Design on Controls in MFC Application Programs
        DU Qing
        主界面中输出数字三角形的控件可以是静态文本控件、编辑框控件或列表框控件。程序开
始运行时,控件中显示内容为空。在右侧下方的编辑框控件中输入数字三角形的行数10,并点击开始按钮,则在中间控件中按照一定的时间间隔依次输出12……55
        点击开始按钮的消息响应函数代码如下:
        3 在控件中输出数字三角形
        3.1 在静态文本控件中输出数字三角形
        静态文本控件一般用作标签,显示提示信息。为了使静态文本控件具有边框及下沉属性,要将控件的Client EdgeSunken属性设置为true
        由于所有静态控件的默认ID均为IDC_STATIC,而当静态控件取默认ID时,无法对控件进行操作,所以若要在静态文本控件中输出数字三角形,就必须改变控件的默认ID,例如将ID改为IDC_STATIC1
        数据可视化设计案例WM_PAINT消息的消息响应函数OnPaint中,增加输出数字三角形的代码如下:
        程序运行结果如图1所示。
        3.2 在编辑框控件中输出数字三角形
        编辑框控件既可以接收用户输入的数据,也可输出信息给用户。为了使编辑框控件能够输出多行文本,要将控件的Multiline属性设置为true
        在编辑框控件中输出数字三角形,一种方法是采用与静态控件相同的方式,即调用SetWindowText函数实现,另一种方法是通过增加与控件关联的值类别变量,再调用UpdateData函数,将控件变量数据显示在编辑框控件中,从而实现数字三角形的输出。
        当采用第二种方法时,首先要为编辑框控件IDC_EDIT1添加一个值类别CString类型的控件变量edit1,再在WM_PAINT消息的消息响应函数OnPaint中,增加输出数字三角形的代码如下:
        程序运行结果也如图1所示。
        3.3 在列表框控件中输出数字三角形
        列表框控件可以提供多个列表项供用户选择,列表项的增加可以通过调用CListBox类的
成员函数AddString实现。为了使增加的列表项不自动排序,要将控件的sort属性设置为false
        为了在列表框中输出数字三角形,首先为列表框控件IDC_LIST1添加一个控件类别CListBox类型的控件变量list1,在WM_PAINT消息的消息响应函数OnPaint中,重复调用AddString函数依次在列表框中加入多个列表项,每个列表项是数字三角形的一行。具体代码如下:
        如果要改变的是编辑框控件或列表框控件的背景,只需将以上代码中的case CTLCOLOR_STATIC改为case CTLCOLOR_EDITcase CTLCOLOR_LISTBOX,并将IDC_STATIC1改为IDC_EDIT1IDC_LIST1即可。另外如果要改变按钮控件的背景,需要将按钮控件的Owner Draw属性设置为true
        5 结束语
        为了便于学生了解和掌握MFC应用程序中控件的使用,设计了一个数字三角形案例。通过案例,学生可以更直观的学习控件的创建、属性设置、消息映射、调用控件类成员函数操
作控件以及改变控件背景的方法。采用这种案例式教学方法进行课堂教学,使单调、抽象的概念具体化、形象化,提高了学生的学习兴趣,取得了较好的教学效果。
        参考文献:
        [1] 郑阿奇,丁有和.Visual C++教程(第2版)[M].北京:清华大学出版社,2011.
        [2] 黄维通,贾续涵. Visual C++面向对象与可视化程序设计(第三版) [M].北京:清华大学出版社,2011.
        [3] 廖雷,袁璟,陈立. C语言程序设计基础[M].北京:高等教育出版社,2004.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。