小弟初次贴文,水平不高,希望不要丢东西.呵呵.
大家都知道可以在一个CFrameWnd上面使用CSplitterWnd以做出分割窗口的效果(呵呵,顺便,分割窗口可是MFC程序的一大特色.原来(Delphi没有加上这个的支持之前),你只要看到了分割窗口,几乎可以肯定是MFC的.(哈哈,当然,也有人用SDK做一个出来,有这种闲的家伙么?呵呵,好象废话太多了点).
可是现实中的情况是,有的时候我们要在一个一般的CWnd上面做一个SplitterWnd的效果.怎么办呢?MS的SplitterWnd只可以用于CFrameWnd(好像也可以用于CView类,MS的文档里说的).之所以有这个限制是因为TMD狗屎MS在SplitterWnd里面把所有要取Parent窗口的地方都设为CFrameWnd了.但实际上,它又没有用到CFrameWnd的任何特性.所以我们应该怎么做,好像是很明显的了.就是去翻MS的SplitterWnd的源码,把所有的用到了Parent的地方都改掉.啊!!!不是的,这还叫狗屁OOP?应该是重载一个我们自己的.
头文件:
// SplitWnd.h : implementation file
//
class CxSplitterWnd : public CSplitterWnd
{
// Construction
public:
CxSplitterWnd() {};
virtual ~CxSplitterWnd() {};
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{
{
AFX_VIRTUAL(CxSplitterWnd)
//}}AFX_VIRTUAL
// Implementation
public:
// These are the methods to be overrid