代码改变世界

CTreeCtrl 父结点联动子结点CheckBox

2011-06-22 10:25 by chainchan, 1470 阅读, 0 推荐, 收藏, 编辑
摘要:网上搜索了一番,发现没有一个符合我的要求的,于是自己写。程序功能实现:在按下父结点的CheckBox后,其子结点全部跟随父结点的CheckBox属性设置。实现步骤:1.重载CTreeCtrl的单击事件void CXMLTree::OnNMClickTree(NMHDR *pNMHDR, LRESULT *pResult){ NM_TREEVIEW* pHdr = (NM_TREEVIEW*)pNMHDR; CPoint point; UINT uFlag; GetCursorPos(&point); ScreenToClient(&point); HTREEITEM hItem 阅读全文

C++设计模式之Observer(观察者)模式

2011-01-24 17:16 by chainchan, 606 阅读, 2 推荐, 收藏, 编辑
摘要:作用:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。比如,QQ中你的好友上线下,他们的头像亮起,熄灭。以下是参考代码[代码] 阅读全文

C++设计模式之Bridge模式

2011-01-17 16:16 by chainchan, 403 阅读, 0 推荐, 收藏, 编辑
摘要:一、功能   将抽象部分与它的实现部分分离,使它们都可以独立地变化。 二、结构图三、示例代码 [代码]四、实例  (1)创建可以在X Window System和IBM的Presentation Manager系统中都可以使用的窗口。(书上的例子)Bridge的魅力在于抽象和实现之间是松散的关系,它们之间可以进行随意组合。如上图中,就有IconWindow+XWindowImp、TransientWindow+XWindowImp、IconWindow+PMWindowImp、TransientWindow+PMWindowImp四种组合。 阅读全文

C++设计模式之Singleton模式

2011-01-10 15:47 by chainchan, 774 阅读, 0 推荐, 收藏, 编辑
摘要:一、功能   保证一个类仅有一个实例。二、结构图三、优缺点  Singleton模式是做为"全局变量"的替代品出现的。所以它具有全局变量的特点:全局可见、贯穿应用程序的整个生命期,它也具有全局变量不具备的性质:同类型的对象实例只可能有一个。 四、实现[代码]{public: static Singleton* Instance();protected: Singleton() { }private: static Singleton* _instance; Singleton(const Singleton&); Singleton& operator=(const Singleton&);} 阅读全文

C++设计模式之Abstract Factory模式

2011-01-09 18:52 by chainchan, 412 阅读, 0 推荐, 收藏, 编辑
摘要:一、功能   提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 二、结构图  类厂最基本的结构示意图如下:   在实际应用中,类厂模式可以扩充到很复杂的情况,如下图所示:三、优缺点  优点:(1)封装创建过程。客户不用知道类厂是如何创建类实例的,类厂封闭了所有创建的细节。这样可选择不同的创建方法,增加了灵活性。 (2)将客户与具体类隔离,提高了各自的可重用性。  缺点:Factory类层次与具体类层次通常是平行的(即一一对应的)。增加一个具体类,一般也要相应地增加一个factory类,增加了系统复杂度。四、实现  (1)Abstract Factory类中通常是一组Fact 阅读全文

C++设计模式之Adapter模式

2011-01-05 19:10 by chainchan, 537 阅读, 0 推荐, 收藏, 编辑
摘要:一、功能   将一个类的接口转换成客户希望的另外一个接口,解决两个已有接口之间不匹配的问题。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。二、结构图  (1)class adapter   (2)object adapter三、实现  和其他很多模式一样,学习设计模式的重点是学习每种模式的思想,而不应拘泥于它的某种具体结构图和实现。因为模式是灵活的,其实现可以是千变万化的,只是所谓万变不离其宗。 在STL中大量运用了Adapter模式,象function adapter、iterator adpter,它们与这里说的adapter结构并不一样,但思想是一样的。具体 阅读全文

VS2010关联MSDN10.0

2010-12-09 11:43 by chainchan, 456 阅读, 0 推荐, 收藏, 编辑
摘要:用了一小段时间help library表示不是非常舒服,想重新用回MSDN。具体设置方法如下:1.帮助-设置2.设置一个放置MSDN的文件夹3.选择从光盘安装MSDN(直接用光盘的话,会发现没有安装MSDN的选项)4.光盘内的文件名如下5.选择你要使用的内容。之后就是等待了,总内容大概在1.3G左右。 阅读全文

在C++中计算物件个数(Objects Counting in C++)

2010-12-08 16:06 by chainchan, 511 阅读, 0 推荐, 收藏, 编辑
摘要:原文出自:More Effective C++ 电子版 p.452仅为个人学习,暴露缺点;所以仅供参考,欢迎讨论!需求:当我需要实时了解当前有多少类型的对象同时存在。设计:比如一开始会这样设计[代码]直接在类中增加一个static member data。然后当Widget类型有对象被构造(复制构造)时计数器+1,析构时计数器-1;如果目标仅仅是针对Widget类的话,我们的需求已经被达到了。但是,当我们需要统计不同类型的对象个数时,就需要换一种更为舒服的实现方式了。设计一个计数类:[代码][代码]但是这样设计的话又会出现一个问题,看出来了么?对,就是static的count。如果我们同时存在 阅读全文

C++应用引用计数技术

2010-11-12 12:31 by chainchan, 1678 阅读, 0 推荐, 收藏, 编辑
摘要:因为Windows的内核对象也运用了引用计数,所以稍作了解并非无用。引用计数可以让多个对象共享一个数据,而且免除了跟踪控制权的负担,让对象自己管理自己,当再没有被使用时可以自动删除,也算是一种简易的垃圾回收机制。另一方面,如果有N多个相同的对象:○=○=○=○=...=○=○ 这样的做法是臃肿且无聊的,所以一个好的做法就是让对象可以共享这一个数据。既可以节省内存,又可以提高效率让程序负担更少,不用... 阅读全文

水晶报表按XML格式定制表格

2010-10-28 10:45 by chainchan, 1903 阅读, 2 推荐, 收藏, 编辑
摘要:如图:表格行字段是:Topic.attr_002 ~ Topic.attr_007 (含2个以上元素)表格列字段是:Item.attr_002 ~ Item.attr_007 (含有2-7个不定元素)这样的话,请问我该如何实现在水晶报表中定制如图上方那样的表格?1。是否可以实现?2。如果实现我应该参考哪些资料?类似的字段冲突,看了些资料都没有很好的解决办法,更不用说是满足自定义的格式了。周末在家加... 阅读全文