积极答复者
怎么用CSplitterWnd把CDockablePane切分成两部分

问题
答案
-
你好,
>>AddWindow的实现
关于AddWindow的实现,代码如下:
class CPaneSplitter : public CSplitterWndEx { public : BOOL AddWindow(int row, int col, CWnd* pWin,CString clsName, DWORD dwStyle,DWORD dwStyleEx, SIZE sizeInit); }; BOOL CPaneSplitter::AddWindow(int row, int col, CWnd* pWnd , CString clsName , DWORD dwStyle,DWORD dwStyleEx, SIZE sizeInit) { //设置该窗格的初始大小 m_pColInfo[col].nIdealSize = sizeInit.cx; m_pRowInfo[row].nIdealSize = sizeInit.cy; CRect rect(CPoint(0,0), sizeInit); if(!pWnd->CreateEx(dwStyleEx,clsName,NULL,dwStyle,rect,this,IdFromRowCol(row, col))) return FALSE; return TRUE; }
我建议你可以参考以下链接中的Adding a SpliteWnd to Pane:
https://www.codeproject.com/Articles/493218/Understanding-CDockablePaneBest wishes,
Jeanine Zhang- 已标记为答案 Hota_CT 2019年2月25日 11:46
全部回复
-
你好,
感谢您在MSDN论坛发帖提问。
>>怎么用CSplitterWnd把CDockablePane切分成两部分
CSplitterWnd 类提供拆分窗口功能,使窗口包含多个窗格。
一个CSplitterWnd对象通常会嵌入父级CFrameWnd或CMDIChildWnd对象。 创建CSplitterWnd对象使用以下步骤:
1,嵌入CSplitterWnd父框架中的成员变量。
2,重写父框架CFrameWnd::OnCreateClient成员函数。
3,从中重写OnCreateClient,调用创建或CreateStatic成员函数的CSplitterWnd。更多关于如何拆分CDockablePane的细节,你可以参考这个链接:https://stackoverflow.com/questions/7184620/how-can-i-split-a-cdockablepane
Best wishes,
Jeanine Zhang -
感谢你得回复
你给的这个链接和我的目的是一模一样的
只不过少了这这部分代码的实现 AddWindow的实现
class CPaneSplitter : public CSplitterWndEx { public : BOOL AddWindow(int row, int col, CWnd* pWin,CString clsName, DWORD dwStyle,DWORD dwStyleEx, SIZE sizeInit); };
我试着在里面实现CreateView 或者 Create发现都不能达到目标效果,请问,并且参数数量类型都对不太上
请问这个大概该怎么实现呢?
-
你好,
>>AddWindow的实现
关于AddWindow的实现,代码如下:
class CPaneSplitter : public CSplitterWndEx { public : BOOL AddWindow(int row, int col, CWnd* pWin,CString clsName, DWORD dwStyle,DWORD dwStyleEx, SIZE sizeInit); }; BOOL CPaneSplitter::AddWindow(int row, int col, CWnd* pWnd , CString clsName , DWORD dwStyle,DWORD dwStyleEx, SIZE sizeInit) { //设置该窗格的初始大小 m_pColInfo[col].nIdealSize = sizeInit.cx; m_pRowInfo[row].nIdealSize = sizeInit.cy; CRect rect(CPoint(0,0), sizeInit); if(!pWnd->CreateEx(dwStyleEx,clsName,NULL,dwStyle,rect,this,IdFromRowCol(row, col))) return FALSE; return TRUE; }
我建议你可以参考以下链接中的Adding a SpliteWnd to Pane:
https://www.codeproject.com/Articles/493218/Understanding-CDockablePaneBest wishes,
Jeanine Zhang- 已标记为答案 Hota_CT 2019年2月25日 11:46