- 博客(9)
- 资源 (1)
- 收藏
- 关注
转载 模板模式和策略模式的区别
根据《深入浅出设计模式(C#/Java版)》所述,Strategy模式的应用场景是:1. 多个类的分别只是在于行为不同2. 你需要对行为的算法做很多变动3. 客户不知道算法要使用的数据 Template Method模式的应用场景是:1. 你想将相同的算法放在一个类中,将算法变化的部分放在子类中实现2. 子类公共的算法应该放在一个公共的类中,避免代码重复
2011-12-30 10:36:03 15466 4
转载 [探讨java深入的不变模式] java中String类的用法
不变模式(Immutable Pattern)顾名思义,它的状态在它的生命周期内是永恒的(晕,永恒的日月星晨,对象如人,太渺小,谈不上永恒!),不会改变的.对于其中的不变类(Immutable Class),它的实例可以在运行期间保持状态永远不会被改变,所以不需要采取共享互斥机制来保护,如果运用得当可以节省大量的时间成本. 请注意上面这段话,不变模式其中的不变类,说明不变类只是不变模式中一
2011-12-29 19:57:24 3541 1
原创 ATL::CMessageFilter的作用
消息过滤:消息过滤是这样一种技术,在你的程序中,在GetMessage函数将消息成功放入你的消息队列之后Translate/DispatchMessage函数处理它之前给一个机会给你处理!class CxxDialog : public ATL::CWindowImpl , public CMessageFilter
2011-12-29 13:58:00 2382 1
原创 ATL3.0中的窗口类-客户端使用ATL创建DUI框架的起点
摘要:讨论Active Template Library (ATL) 3.0中的一些类,这些类围绕着Windows API建立了一个面向对象的编程框架,使用这个框架,可以简化Microsoft® Windows®编程并且只需要很少的系统开销。内容包括:考察对窗口做了简单封装的CWindow类;使用CWindowImpl进行消息处理和消息映射;使用ATL中的对话框类以及扩展现有窗口类
2011-12-29 10:02:38 1418
转载 有关CComPtr&CComQIPtr,CComBSTR,CComVariant,CAutoPtr的设计思想的分析
这三种类型的封装类都对其封装类型进行包裹,尤其是提供分配内存以及释放内存。在设计思想上不同的是:CComPtr&CComQIPtr:用于维护COM的接口,l 对于构造函数和赋值等于,n 无论传入T还是CComPtr,都直接或间接AddRef(相当郁复制)并不是owner相应的T。也就是说通过构造函数或赋值等于传入的T还是由外部来owner释放。不addRef
2011-12-24 13:59:07 805
转载 NCpaint, 非客户区实现阴影
在WINDOWS的WINHELPER帮助系统中大量使用一类带阴影的弹出窗口,这类窗口非常简洁,并具有立体感,它们用来显示一些只读信息,此类弹出窗口不同于一般的窗口,它们没有标题和滚动杆,但都具有带阴影的边框,并且其窗口的大小随显示字符串多少而自动调节,当显示信息弹出之后,任何来自键盘或鼠标的消息都将导致弹出窗口的消失。然而WINDOWS API接口中没有现成的函数来实现此项功能,即使是最新版的VI
2011-12-22 12:44:58 4949
原创 [windows][ui]计算字符宽度
int CalTextWidth(const CString& strText, HDC hDc){ CRect rc(0,0,0,0); ::DrawText(hDc, strText, strText.GetLength(), &rc, DT_CALCRECT| DT_NOPREFIX); return rc.Width();}DT_C
2011-12-15 11:29:48 879
原创 [windows][UI] WM_MOUSEACTIVATE
当用户单击一个非激活的顶级窗体,或非激活的顶级窗体的子窗体时,系统就会发送WM_MOUSEACTIVATE消息(还包括其他消息)给顶级窗体或子窗体,该消息在WM_NCHITTEST消息之后,但在button-down消息之前。当把WM_MOUSEACTIVATE消息交给DefWindowProc函数处理时,系统激活该顶级窗口并投递button-down消息。 通过处理WM_MOUSEACTI
2011-12-15 11:28:30 4314
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人