一个MFC小程序界面的实现思路(窗口分割)

来源:互联网 发布:苹果版java模拟器 编辑:程序博客网 时间:2024/05/22 19:25

  学了C语言C++之后,编写的都是控制台程序也就是那个黑框框,涉及到一点界面的也只是写基于对话框的。所以一直想去写一个基于单文档的或者多文档的,稍微大点的“小程序”。最后终于迈出了第一步,写了一个答题的小程序,现在就介绍一下整个程序的实现思路和步骤(窗口分割和几个控件的使用方法)

  程序的主体主要是整个界面的框架,至于具体的功能则可以在上面添加具体的控件和菜单栏工具栏的选项。刚创建一个单文档程序,直接能运行出来的是视图区只有一块区域的界面。但是我们常用的程序基本视图区都有几块,一方面可以显示不同的数据内容:比如树状图显示,列表图等等;另一方面,对于简单的程序来说,我们要从视图区中分割一块出来当作操作面板,因为不能所用的功能都在菜单栏和选项栏中。所以第一步也是很重要的一步,我们要根据程序的内容做视图区的窗口分割,本实例将视图区分成两份,一边用来显示内容,一边用作操作板。


  

  至于窗口分割的具体细节还有很多博客描述,这里不具体描述。简单介绍几种常用的视图:CScrollView(滚动视图)、CEditView(文本编辑视图)、CFormView(对话框视图)、CListView(列表视图)、CTreeView(树形视图等),这些视图都是从CView中派生而来的。实例采用的是CFormView视图,因为要用作“操作面板”,该视图创建后即跟对话框程序差不多,直接在上面添加控件就好,十分方便。所以子视图如果要用作操作面板的,一般要使用CFormView。本文也用了CListView,该视图可以将信息以列表的形式显示,有基本的数据操作功能(比如删除整行信息)。

   程序的登录界面:


设置输出文字的字体和颜色(CFontDialog):


调用其他软件和打开任意文档:


  至于试题的切换功能我是在ondrow中实现的,当点击“下一题”按钮时,题号加一,再InvalidateRect。这样可以擦掉上一题的输出内容,ondrow里再打印出下一题的内容。

程序界面:


原创粉丝点击