扩展的分割窗口类






3.65/5 (14投票s)
2001年4月27日
1分钟阅读

184115

3901
一个扩展的分割窗口类,可以轻松创建“T”形布局
引言
我需要一个3窗口分割器,它将以“T”字形分割窗口,而不是3列或3行。这个CExSplitter3Wnd
类允许您根据预定义的布局创建3窗口分割器。以下是定义的模式。请注意,您可以添加任何您想要的布局
请注意,PATTERN_5
和PATTERN_6
是以通常的方式创建的。其他4种模式显示了扩展样式。
要创建这些模式中的一种
- 在您的SDI
MainFrame
中重写OnCreateClient
函数。 - 构造一个新的
CExSplitter3Wnd
对象。 - 设置样式和初始视图大小。
- 使用以下参数调用设置模式函数
CWnd* pParent
SPLIT_PATTERN SplitPattern
CRuntimeClass* pFirstView
CRuntimeClass* pSecView
CRuntimeClass* pThirdView
CCreateContext* pContext
SPLIT_PATTERN
是一个定义的enum
typedef enum
{
PATTERN_1 ,
PATTERN_2 ,
PATTERN_3 ,
PATTERN_4 ,
PATTERN_5 ,
PATTERN_6 ,
}SPLIT_PATTERN;
示例
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
m_pTopWndSplitter = new CExSplitter3Wnd;
m_pTopWndSplitter->SetStyle(WS_CHILD | WS_VISIBLE | WS_BORDER);
m_pTopWndSplitter->SetFirstViewSize(CSize(100,100));
m_pTopWndSplitter->SetSecondViewSize(CSize(100,200));
m_pTopWndSplitter->SetThirdViewSize(CSize(100,100));
m_pTopWndSplitter->SetPattern(this,PATTERN_1,
RUNTIME_CLASS(CTestSplitView),RUNTIME_CLASS(CSecView),
RUNTIME_CLASS(CThirdView),pContext);
return TRUE;
}
您可以通过调用其中一个尺寸函数来检索不同的视图大小。每个视图(第一个、第二个、第三个)都有自己的函数
void GetFirsWndDim(int* nCurrDim,int* nMinDim);
void GetSecWndDim(int* nCurrDim,int* nMinDim);
void GetThirdWndDim(int* nCurrDim,int* nMinDim);
许可证
本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。
作者可能使用的许可证列表可以在此处找到。