基于mfc的窗口拆分

基于mfc的窗口拆分

ID:17389801

大小:323.00 KB

页数:4页

时间:2018-08-30

基于mfc的窗口拆分_第1页
基于mfc的窗口拆分_第2页
基于mfc的窗口拆分_第3页
基于mfc的窗口拆分_第4页
资源描述:

《基于mfc的窗口拆分》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1、MFC主要支持两种类型的窗口拆分:静态拆分和动态拆分。动态拆分:动态拆分窗口最多可以有两行两列,但它们可以相互拆分和合并。首先创建一个基于MFC的单文档工程,然后添加下面的代码,运行,就可以看到窗口动态拆分的效果。CSplitterWndm_wndSplitter;BOOLCMainFrame::OnCreateClient(LPCREATESTRUCT/*lpcs*/,CCreateContext*pContext){returnm_wndSplitter.Create(this,2,2,//TODO:调整

2、行数和列数CSize(10,10),//TODO:调整最小窗格大小pContext);}另外,动态拆分也可以在创建工程的时候,在工程向导里面勾选拆分窗口的选项,上面的代码就会自动生成,然后点击菜单视图--拆分,就可以手动拆分。2、静态拆分:静态拆分窗口的行列数在拆分窗口被创建时就设置好了,用户不能更改。但是用户可以缩放各行各列。一个静态拆分窗口最多可以包含16行16列。静态拆分的过程:静态拆分窗口是用CsplitterWnd::CreateStatic而不是CsplitterWnd::Create创建,并且由于M

3、FC不会自动创建静态拆分窗口中显示的视图,所以您要亲自在CreateStatic返回之后创建视图。CsplitterWnd为此提供了名为CreateView的函数。1).在父框架中嵌入一个CSplitterWnd成员变量。2).重载父框架的CFrameWnd::OnCreateClient成员函数。3).从重载的OnCreateClient函数中调用类CSplitterWnd的Create或CreateStatic成员函数,并调用CreateView来创建视图。3、关键函数介绍:BOOLCreateStatic(

4、CWnd*pParentWnd,intnRows,intnCols,DWORDdwStyle=  WS_CHILD

5、WS_VISIBLE,UINTnID=AFX_IDW_PANE_FIRST);  函数有5个参数,意义如下:  ●pParentWnd:切分窗口的父窗口指针  ●nRows:水平方向分隔窗口的数目  ●nCols:垂直方向分隔窗口的数目  ●dwStyle:切分窗口的风格  ●nID:子窗口的ID值,默认为系统定义的AFX_IDW_PANE_FIRST  返回值:如果创建成功,返回非零值(TRUE)

6、,否则返回0(FALSE)。  m_wndSplitter.CreateStatic(this,2,1);//切分为2行1列    virtualBOOLCreateView(introw,intcol,CRuntimeClass*pViewClass,SIZEsizeInit,CCreateContext*pContext);  函数有5个参数,意义如下:  ●row:窗格的行标,从0开始  ●col:窗格的列标,从0开始  ●pViewClass:视图的执行期类CRuntimeClass指针,可以用宏RUNT

7、IME_CLASS获得  ●sizeInit:一个SIZE(或者CSize)类型的数据,指定窗格的初始大小  ●pContext:一般是由父窗口传递过来,包含窗口的创建信息返回值:如果创建成功,返回非零值(TRUE),否则返回0(FALSE)。m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CTest),CSize(190,100),pContext)静态窗口分割实例:新建一个基于MFC的单文档工程,并添加3个基于FormView的MFC视图类CFormView11、CFor

8、mView12和CFormView13,并添加CSplitterWndm_wndSplitter;然后添加下面的代码:BOOLCMainFrame::OnCreateClient(LPCREATESTRUCT/*lpcs*/,CCreateContext*pContext){CRectrt;GetClientRect(&rt);//创建切分窗口m_wndSplitter.CreateStatic(this,1,3);//为切分窗口创建视图m_wndSplitter.CreateView(0,0,RUNTIME_C

9、LASS(CFormView11),CSize(100,rt.Height()),pContext);m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CFormView12),CSize(500,rt.Height()),pContext);m_wndSplitter.CreateView(0,2,RUNTIME_CLASS(CFor

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。