一个MFC小程序界面的实现思路(窗口分割)
2017-08-15 14:50
465 查看
学了C语言C++之后,编写的都是控制台程序也就是那个黑框框,涉及到一点界面的也只是写基于对话框的。所以一直想去写一个基于单文档的或者多文档的,稍微大点的“小程序”。最后终于迈出了第一步,写了一个答题的小程序,现在就介绍一下整个程序的实现思路和步骤(窗口分割和几个控件的使用方法)
程序的主体主要是整个界面的框架,至于具体的功能则可以在上面添加具体的控件和菜单栏工具栏的选项。刚创建一个单文档程序,直接能运行出来的是视图区只有一块区域的界面。但是我们常用的程序基本视图区都有几块,一方面可以显示不同的数据内容:比如树状图显示,列表图等等;另一方面,对于简单的程序来说,我们要从视图区中分割一块出来当作操作面板,因为不能所用的功能都在菜单栏和选项栏中。所以第一步也是很重要的一步,我们要根据程序的内容做视图区的窗口分割,本实例将视图区分成两份,一边用来显示内容,一边用作操作板。
![](https://img-blog.csdn.net/20170815151627283?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2h1X3N0dWRlbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
至于窗口分割的具体细节还有很多博客描述,这里不具体描述。简单介绍几种常用的视图:CScrollView(滚动视图)、CEditView(文本编辑视图)、CFormView(对话框视图)、CListView(列表视图)、CTreeView(树形视图等),这些视图都是从CView中派生而来的。实例采用的是CFormView视图,因为要用作“操作面板”,该视图创建后即跟对话框程序差不多,直接在上面添加控件就好,十分方便。所以子视图如果要用作操作面板的,一般要使用CFormView。本文也用了CListView,该视图可以将信息以列表的形式显示,有基本的数据操作功能(比如删除整行信息)。
程序的登录界面:
![](https://img-blog.csdn.net/20170815155312307?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2h1X3N0dWRlbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
设置输出文字的字体和颜色(CFontDialog):
![](https://img-blog.csdn.net/20170815160953115?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2h1X3N0dWRlbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
调用其他软件和打开任意文档:
![](https://img-blog.csdn.net/20170815161609025?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2h1X3N0dWRlbnQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
至于试题的切换功能我是在ondrow中实现的,当点击“下一题”按钮时,题号加一,再InvalidateRect。这样可以擦掉上一题的输出内容,ondrow里再打印出下一题的内容。
程序界面:
程序的主体主要是整个界面的框架,至于具体的功能则可以在上面添加具体的控件和菜单栏工具栏的选项。刚创建一个单文档程序,直接能运行出来的是视图区只有一块区域的界面。但是我们常用的程序基本视图区都有几块,一方面可以显示不同的数据内容:比如树状图显示,列表图等等;另一方面,对于简单的程序来说,我们要从视图区中分割一块出来当作操作面板,因为不能所用的功能都在菜单栏和选项栏中。所以第一步也是很重要的一步,我们要根据程序的内容做视图区的窗口分割,本实例将视图区分成两份,一边用来显示内容,一边用作操作板。
至于窗口分割的具体细节还有很多博客描述,这里不具体描述。简单介绍几种常用的视图:CScrollView(滚动视图)、CEditView(文本编辑视图)、CFormView(对话框视图)、CListView(列表视图)、CTreeView(树形视图等),这些视图都是从CView中派生而来的。实例采用的是CFormView视图,因为要用作“操作面板”,该视图创建后即跟对话框程序差不多,直接在上面添加控件就好,十分方便。所以子视图如果要用作操作面板的,一般要使用CFormView。本文也用了CListView,该视图可以将信息以列表的形式显示,有基本的数据操作功能(比如删除整行信息)。
程序的登录界面:
设置输出文字的字体和颜色(CFontDialog):
调用其他软件和打开任意文档:
至于试题的切换功能我是在ondrow中实现的,当点击“下一题”按钮时,题号加一,再InvalidateRect。这样可以擦掉上一题的输出内容,ondrow里再打印出下一题的内容。
程序界面:
相关文章推荐
- 在一个MFC的对话框应用程序中,实现程序开始时就隐藏对话框界面方法(收集)
- MFC程序实现窗口分割,视图快捷插入控件和插入列表
- 把Qt 的窗口程序 嵌入到 MFC 的窗口程序中 实现思路
- 做了一个开源MFC窗口特效及背景皮肤控件,广泛兼容现有界面库
- 关于MFC美化界面的一个实现
- Xcode里通过代码实现一个窗口程序
- [VC/MFC]一条语句实现程序运行时隐藏窗口
- 实现单文档程序中分割窗口
- Android中设置只有程序第一次运行才显示的界面实现思路
- MFC如何实现打开一个文件,就像安装完某个程序然后弹出一个readme.txt一样?
- 在cmd启动一个MFC程序,printf把信息输出到启运它的那个CMD窗口
- 如何禁用窗口关闭按钮在一个 MFC 多文档界面 (MDI) 应用程序
- 在 MFC SDI 程序中实现多语言程序界面
- MFC实现启动时无子窗口的MDI程序
- MFC的窗口分割的设计与实现
- [VC/MFC]一条语句实现程序运行时隐藏窗口
- 【原创】在winform程序中实现在IE浏览器中打开一个新的页面,全屏化并屏蔽IE窗口的工具栏和地址栏
- 在 MFC SDI 程序中实现多语言程序界面
- MFC 实现分割窗口
- C/C++做的一个简单界面程序扩充,向指定窗口发送消息