2011年12月31日

使用CSplitterWnd分隔窗口,左视图控制,右视图显示

摘要: 往往有这种需求:需要显示的视图为ClistView,但这个View的显示数据是有条件的,需要根据用户的输入来显示,如查询历史记录所需的条件。这时有3种方案:1. 使用CFormView/Dialog来控制,显示使用CListCtrl控件。 使用该方法的好处在于我们对其比较熟悉,一般都只需鼠标点点即可,再加入相应的代码。缺点就在于窗口大小的改变不会使控件的大小变化,当窗口最大化时显示的效果不佳,当然也可以修改OnSize函数,使得这些控件随窗口的改变而改变。2. 使用ToolBar来控制视图,如CListView 该方法的好处在于简洁,方便。难点在于工具栏要随视图的变化而变化,这一点在“动态.. 阅读全文

posted @ 2011-12-31 10:28 张 勇 阅读(1812) 评论(0) 推荐(0) 编辑

使用CTabView实现多视图(一体多面)

摘要: 一般书中介绍的是使用CSplitterWnd来拆分窗口实现多视图,CSplitterWnd中的CreateClient可以保存其创建的pCreateContext指针,以便子视图共享Document。这我用一篇文章详细说明。CTabView建立多视图的好处在于简单的标签切换,可以让每个View的窗口都很大。下面说说如何操作:在建立项目时,程序向导最后一步并未提供让View为CTabView类型,因此我们需要自己新建一个CTabView的子类。在vc2008中,在项目菜单中“项目”->“添加类”,可以自动生成类,像vc6的话ClassWizard也可以自动添加。修改WinApp中的Init 阅读全文

posted @ 2011-12-31 09:57 张 勇 阅读(6311) 评论(0) 推荐(0) 编辑

2011年12月28日

MFC中手动创建出视图

摘要: 在MDI程序中,新建和打开菜单都是系统自带的,有些时候并不能通过ON_FILE_NEW来显示出视图,某种类型的视图往往可能只显示一个。那么撇开系统自带的ON_FILE_NEW命令,我们自己写一个。在程序启动时,我们不想新建出一个空的视图,只要大的框架就行。在app的InitInstance函数中,将下面几行注释掉 // 分析标准外壳命令、DDE、打开文件操作的命令行 //CCommandLineInfo cmdInfo; //ParseCommandLine(cmdInfo); // 调度在命令行中指定的命令。如果 // 用 /RegServer、/Register、/Unregserver 阅读全文

posted @ 2011-12-28 19:31 张 勇 阅读(3756) 评论(0) 推荐(0) 编辑

MDI动态改变菜单、工具栏

摘要: 在MDI开发中,往往不同的视图需要不同的菜单和不同的工具栏,这样对于不同view可以有不同的操作。现在分步骤进行实现。第一步: 添加新的docTemplate我们知道在MFC中Document/view/ChildFrame是一体的,当新建一个工程后,IDE会自动为我们建立一份Document/view/ChildFrame,因此为了使用不同类型的文档我们需要额外定义另三个类。然后在WinApp中的InitInstance函数添加document模板: 1 // 注册应用程序的文档模板。文档模板 2 // 将用作文档、框架窗口和视图之间的连接 3 m_pFirstDoc... 阅读全文

posted @ 2011-12-28 11:36 张 勇 阅读(3755) 评论(0) 推荐(0) 编辑

2011年12月21日

使用boost中的property_tree实现配置文件

摘要: property_tree是专为配置文件而写,支持xml,ini和json格式文件ini比较简单,适合简单的配置,通常可能需要保存数组,这时xml是个不错的选择。使用property_tree也很简单,boost自带的帮助中有个5分钟指南http://www.boost.org/doc/libs/1_46_1/doc/html/boost_propertytree/tutorial.html这里写一下使用xml来保存多维数组,在有些情况下一维数组并不能满足要求。举个简单的例子吧:xml格式如下:<debug> <total>3</total> <per 阅读全文

posted @ 2011-12-21 13:16 张 勇 阅读(9791) 评论(0) 推荐(0) 编辑

boost.xml_parser中文字符问题

摘要: 当使用xml_parser进行读xml时,如果遇到中文字符会出现解析错误。网上有解决方案说使用wptree来实现,但当使用wptree来写xml时也会出错。而使用ptree来写中文时不会出错。综合以上信息,尝试使用ptree来写xml,而用wptree来读。以一个demo来说明吧。1 //包含文件2 #include <boost/property_tree/ptree.hpp>3 #include <boost/property_tree/xml_parser.hpp>4 #include <boost/property_tree/json_parser.hpp 阅读全文

posted @ 2011-12-21 13:04 张 勇 阅读(3282) 评论(0) 推荐(0) 编辑

导航