mfc csplitterwnd 什么时候绘制分隔条

2025-04-27 16:10:38
推荐回答(1个)
回答1:

1. 在CMainFrame中添加一个CSplitterWnd成员:
CSplitterWnd m_splitterwnd1;

2. 基于CView创建两个新的视图类,CViewLeft和CViewRight,一个用于在左边显示,一个用于在右边显示。

3. 重载CMainFrame的OnCreateClient函数,在并其中调用CSplitterWndr的CreateStatic函数创建该分割窗口,CreateView函数创建左右两个视图,SetColumnInfo设定分割窗口的列的宽度:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类
m_mysplitter1.CreateStatic(this, 1, 2); //创建一个一行二列的分割窗口
m_mysplitter1.CreateView(0, 0, RUNTIME_CLASS(CViewLeft), CSize(0, 0),
pContext); //建立第0行第0列的视图
m_mysplitter1.CreateView(0, 1, RUNTIME_CLASS(CViewRight), CSize(0, 0),
pContext); //建立第0行第1列的视图
m_mysplitter1.SetColumnInfo(0, 250, 10); //设定某列的宽度,这里表示设定第0列的理想宽度为250像素,最小宽度为10像素(什么是最小宽度?没弄明白)
return TRUE;
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}

运行后就可以看到生成了分割为左右两个视图的窗口。