mfc中的切分窗口

来源:互联网 发布:野荸荠淘宝 编辑:程序博客网 时间:2024/05/22 15:59
MFC的动态切分窗口
 1. 分类
   动态切分- 在程序运行时,由用户根据需要实时的切分窗口.最大切分数量是2*2个
   动态切分的视图窗口使用的是同一个视图类.
   静态切分 - 在程序编写时,由程序员确定的窗口切分,最大切分数量是16*16个.
     而且,静态切分的每个视图窗口,可以使用不同的视图类
 
 2. 相关类
    CSplitterWnd类 - 提供窗口切分的功能.

#include <afxext.h>

Create(

 CWnd* pParentWnd,  // 父窗口
 int nMaxRows,  // 最大行数,最大值是2
 int nMaxCols,  // 最大列数,最大值是2
 SIZE sizeMin,   // 每个视图的最小尺寸
 
)

OnCreateClient 虚函数会被OnCreate调用(CFrameWnd)类

动态切分窗口


    CCreateContext cxt;
// 指定切分窗口的视图
//cxt.m_pNewViewClass = RUNTIME_CLASS(CMyView);

// 创建动态切分窗口
//m_wndSplit.Create(this, 2, 2, CSize(1, 1), &cxt);

静态切分:
 
m_wndSplit.CreateStatic(this, 4,4);
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
{
m_wndSplit.CreateView(i, j, RUNTIME_CLASS(CHtmlView),
 CSize(50, 50), pContext);
}
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
{
CHtmlView* pHtmlView = (CHtmlView*)m_wndSplit.GetPane(i, j);
pHtmlView->Navigate2(L"http://www.baidu.com");
}


  
  设置列宽和行宽
     
  m_wndSplit.CreateStatic(this, 1,2);
m_wndSplit1.CreateStatic(&m_wndSplit, 2, 1, WS_CHILD | WS_VISIBLE, m_wndSplit.IdFromRowCol(0, 0));


m_wndSplit1.CreateView(0, 0, RUNTIME_CLASS(CEditView), CSize(200, 200), pContext);
m_wndSplit1.CreateView(1, 0, RUNTIME_CLASS(CEditView), CSize(200, 200), pContext);
m_wndSplit.CreateView(0, 1, RUNTIME_CLASS(CEditView), CSize(200, 400), pContext);
m_wndSplit.SetColumnInfo(0, 200, 1);   // 设置列宽
m_wndSplit1.SetRowInfo(0, 400, 1);  //  设置行宽


 
0 0
原创粉丝点击