【VC编程技巧】窗体?3.8静态窗口分割
2020-12-13 06:05
标签:csplitterwnd 窗口分割在平时编成中用的特别多,Windows的资源管理器,编写代码的IDE(Visual Stdio,Eclipse)都有窗口分割,下面我们以单文档维例开始讲如何进行窗口分割! CSplitterWnd Class CSplitterWnd类很方便的提供了窗口分割的功能,只需下面几步就能完成窗口分割: 分割窗口类的定义:
【VC编程技巧】窗体?3.8静态窗口分割,搜素材,soscw.com 【VC编程技巧】窗体?3.8静态窗口分割 标签:csplitterwnd 原文地址:http://blog.csdn.net/chen_jint/article/details/38402507
class CSplitterWnd : public CWnd
class CMainFrame : public CFrameWnd
{
protected: // シリアル化からのみ作成します。
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
// 属性
public:
// 操作
public:
// オーバーライド
public:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
// 実装
public:
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected: // コントロール バー用メンバー
CToolBar m_wndToolBar;
CStatusBar m_wndStatusBar;
//分割窗口对象定义
CSplitterWnd m_wndSplitter1;
CSplitterWnd m_wndSplitter2;
// 生成された、メッセージ割り当て関数
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnApplicationLook(UINT id);
afx_msg void OnUpdateApplicationLook(CCmdUI* pCmdUI);
DECLARE_MESSAGE_MAP()
virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
};
框架类成员函数CFrameWnd::OnCreateClient()重载:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: ここに特定なコードを追加するか、もしくは基本クラスを呼び出してください。
//各View大小的设定
CSize sizeView1, sizeView2, sizeView3;
CRect rectClient;
GetClientRect(&rectClient);
sizeView1.cx = 200;
sizeView1.cy = rectClient.Height();
sizeView2.cx = rectClient.Width() - sizeView1.cx;
sizeView2.cy = 300;
sizeView3.cx = sizeView2.cx;
sizeView3.cy = sizeView1.cy - sizeView2.cy;
//静态分割窗口
BOOL bSplitterCreated1 = m_wndSplitter1.CreateStatic(this, 1,2);
m_wndSplitter1.CreateView(0,0, RUNTIME_CLASS(CStaticSplitWndView), sizeView1, pContext);
BOOL bSplitterCreated2 = m_wndSplitter2.CreateStatic(&m_wndSplitter1, 2, 1, WS_CHILD | WS_VISIBLE, m_wndSplitter1.IdFromRowCol(0,1));
m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CView2),sizeView2, pContext);
m_wndSplitter2.CreateView(1, 0, RUNTIME_CLASS(CView3),sizeView3, pContext);
return bSplitterCreated1 && bSplitterCreated2;
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}
下一篇:CSS基础教程:群组化选择器