基于单文档的(MFC)窗口分割

合集下载

MFC如何在文档(CXXXDoc)类或框架(CMainFrame)类中获得视类(CMyView)指针

MFC如何在文档(CXXXDoc)类或框架(CMainFrame)类中获得视类(CMyView)指针
CDocument对象 视列表 GetFirstViewPosition,GetNextView
文档模板 GetDocTemplate
CView 对象 文档对象 GetDocument
边框窗口 GetParentFrame
如何在OnDraw函数或***Dlg函数中获得View类的指针(this)或整个对话框的指针?
在单文档中你可以采用如下方法:
现在要获得指针的文件开始处包含两个文件:
视图的主框架类头文件,即#include "MainFrm.h"
视图类头文件,即#include "XXView.h"
在CDocument类中,调用GetFirstViewPosition()和GetNextView()得到所有的view。
在其它类中,一种方法先是把指针传进去,以备调用的时候使用。另外就要用AfxGetApp()得到CWinApp,然后再用GetFirstDocTemplatePosition()和GetNextDocTemplate()得到doc template,然后调用GetFirstDocPosition()和GetNextDoc()得到doc。
在文档类中(CMainFrame*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
MFC中怎么在CMainFrame下获得View类的指针
使用GetActiveView()函数
MFC中普通类如何获取view类的指针?
在普通类(Generic class)中怎么得到view类的指针?我试过这样:
然后在要访问m_pSet处添加如下语句
CMainFrame* frm=(CMainFrame*)AfxGetApp()->m_pMainWnd;

MFC学习笔记-窗口创建

MFC学习笔记-窗口创建

MFChierarchy chart(类库列表)MFC与Win321 win32:函数,使用API一步一步搭建应用程序。

(常使用FileView操作)2 MFC编程:实现仍然调用API函数,但是是用类封装API函数,使用向导自动生成应用程序框架。

(常使用ClassView操作)2.1需要掌握的技能2.1.1断点调试2.1.2堆栈调用的查看MFC课程内容1 MFC:MFC的六大机制,文档式架构,常用的MFC类,(10--12)。

2 COM(组件对象模型):COM的原理和应用(6)。

3 ADO/Socket:MFC访问数据库以及一些简单的网络编程。

MFC应用程序编程1 MFC的历史:92(VC1)98(VC6)……………………….2 MFC库基础:2.1 MFC库,微软基础类库。

封装了Windows应用程序编程的各种API以及相关机制的C++类库3 类库的相关头文件件★afx-application framework(应用程序框架x)3.1<stdafx.h>-不是类库头文件,是项目的头文件,称为VC下编译的预编译头文件,用来提高编译速度的。

(*.pch)(头文件是不参加编译的但是他参与生成*.pch)3.2<afxwin.h>-几乎包含了各种常用的MFC有文件3.3 <afxext.h>-提供扩展窗口类的支持(创建工具栏,状态栏等………)MFC应用程序的类型1 支持MFC的控制台应用程序(控制台的第四个选项)1.1 多了一个CWinApp(应用程序类,封装类应用程序启动过沉重所涉及到得相关信息)的全局对象(必须有,而且只能有一个)1.2主函数中多了一个AfxWinInit函数,初始化MFC库中的相关信息2 MFC库程序2.1 MFC支持的静态库2.2 MFC支持的动态库2.2.1 MFC规则库(shared MFC DLL)-可以被各种应用程序调用(非MFC程序,没有MFC类也可以调用)★还是有一个CWinApp派生的CMFC_DLLApp类对象2.2.2 MFC扩展库(using shared MFC DLL)-只能被MFC库所编写的应用程序所调用(对原有的MFC类扩展)★DllMain主函数只能被MFC程序调用3 MFC应用程序-----(注意看父类,子类名字可能不一样)3.1单文档视图应用程序★CWinApp 应用程序类★CAboutDlg(对话框-生成关于窗口-和框架没有任何关系)★CMainFrame(父类是:CFrameWnd)(应用程序主框架窗口类-生成应用程序的主框架-负责各个对象的协调工作)★CDocument(它是父类)(文档类-看不到的很重要-管理数据)★CView(它是父类)(视图类-显示数据并和用户进行交互)★CSingleDocApp(父类是CWinApp)-(使用前面的3个类来创建对象)3.2多文档视图架构★CWinApp 应用程序类★CAboutDlg(对话框-生成关于窗口-和框架没有任何关系)★CView(它是父类)(视图类-显示数据并和用户进行交互)★CDocument(它是父类)(文档类-看不到的很重要-管理数据)★CMDIChildWnd(子框架窗口类,父类)★CMDIFrameWnd(主框架窗口类,父类)我们看到的子窗体其实是★CView和★CMDIChildWnd叠加的3.3基于对话框的应用程序★CWinApp 应用程序类★CDialog(对话框窗口类)★★m_pMainWnd保存主窗口地址DoModal 显示对话框MFC相关类的说明1继承自CObject1.1 CObject类:绝大多数MFC类的父类,提供了MFC库的一些机制1 new/delete操作符,定义了与构造函数相关的内存分配函数2 assert和dump调试,堆调试的支持★3 运行时类信息-属于哪个类,还有类的层次结构★4 动态创建★5 序列化1.2 CWinThread: 线程类。

mfc入门单文档MFC应用程序实例-图文

mfc入门单文档MFC应用程序实例-图文

mfc入门单文档MFC应用程序实例-图文14单文档MFC应用程序实例
对话框应用程序使用简洁高教,所以被广泛地使用。

对话框在默认情
况下缺少状态栏、f具栏等界面元素,不能算作是。

完整”的Wwbn应用
程序。

RIUt/Clllr面,可以看作是“标准”的Windown应用程序再面。

1.41技术要点
’MFC的单文档应用程序结构的一大特点是教据和界面分N,在单文
档应用程序中,程序中数据的保存、加藏和处理等功糖由CDocumtI完戚,而数据的显示由cV.州来完成a这种结构又被称为“文彬视田”结构,
在这种结构下.很容器做刊数据和界面的一对多关联。

‘MFC中提供T众多派生于CView的弦生类,每个类都翻IT同的功能,在新建项目时,可以根据蜜际需謇选样不同的根生类。

142实例步骤奉实棚将以CFonnView为例,演示在ViualC++60中新建单文档项目
的鼻体方法。

实例步骤如下所示。

(I)打开ViualC++6.0.单击。

File”/“N州‘菜单。

在弹出对话摧
中选择项目类撼为“MFCAppWiurd(e某e)1.在项目名称文本框中输
A“NffcSdi”,单击“OK-MHE入向导界面。

(2)在向导的Skpl中,选择“Sinlledoeummt“,其余琏项用默认值(参麒1:919)。

单击“Ne某t”按钮进人下一步。

(”向导的Step2.用于设置是否在程序中自动加A对散据库的支持,此步鼻对默认设置不做改动(参照图iIO),直接单击“Ne某r按钮进
AT一步。

如何在MFC单文档中创建多视图

如何在MFC单文档中创建多视图

u 一个文档可以有多个视图,由Document中成员变量CPtrList m_ViewList维护。
u CFrameWnd拥有一个成员变量CView* m_pActiveView指向当前活动的View。
u CView中拥有一个成员变量CDocument* m_pDocument指向该视图相关的Document。
!m_wndSplitter2.CreateView(1, 0, RUNTIME_CLASS(BottomLView), CSize(350, 240), pContext) ||
!m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(TopRView), CSize(350, 240), pContext) ||
/wang_qingyuan/blog/item/60870400275c5b087bec2cbd.html
深入分析MFC文档视图结构
2008-10-16 19:40
文档视图结构(Document/View Architecture)是MFC的精髓,也是Observer模式的具体实现框架之一,Document/View Architecture通过将数据和其表示分开,提供了很好的数据层次和表现层次的解耦。然而,虽然我们使用MFC AppWizard就可以很轻松地获得一个支持Document/View Architecture的MFC程序框架,Document/View Architecture本身的复杂性加上VC产生的一系列代码足够让我们眼花缭乱,一时陷入云里雾里不可自拔。加上我们更多的人都没有经过Windows SDK Programming 的学习和经历就直接进行MFC Programming的学习和开发,更是面对一堆的代码不知所措。

MFC实验六 文档视图和单文档界面

MFC实验六 文档视图和单文档界面

实验六文档/视图和单文档界面1.创建一个单文档界面应用程序,项目名设置为wx03.2.在文档类CWx03Doc中添加数据成员用于保存应用程序的数据。

二维数组m_clrGrid用于保存每个方格的颜色,数据成员m_clrCurrentColor用于保存方格被单击时赋给方格的颜色。

3.在文档类CWx03Doc的OnNewDocument函数中对数据成员进行初始化:4.向类wx03Doc添加三个成员函数,如下:函数定义如下:GetCurrentColor、GetSquare和SetSquare作为文档和视图之间的桥梁,视图对象通过它们可以访问文档的保护成员。

5.编辑CWx03View的OnDraw函数,在视图窗口中绘制网格,并根据文档类中保存的方格颜色来设置方格的颜色。

6.在视图类CWx03View中添加消息处理函数WM_LBUTTONDOWN的处理函数:7.利用菜单编辑器编辑个添加如下菜单,各菜单的属性设置如下表:8.9.为添加的菜单项添加命令消息处理函数和用户界面更新命令处理函数。

由于这些函数都是针对文档数据的操作,因此将这些菜单命令的消息处理函数添加在文档类中。

10.编译、链接和运行程序,结果如下:11.添加序列化功能,将各个方格的颜色以及当前颜色存入文件,并允许从文件中读取。

12.编写一个SDI程序,可以用鼠标在视图窗口中划线,并能将所画的线条保存。

13.定义一个新类Cline。

14.编辑类Cline,在其中添加相应的数据成员和成员函数。

15.在文档类中添加保存线段的数组。

在头文件wx03Doc.h中添加如下的数据成员和成员函数,并包含定义类Cline的头文件和使用MFC模板类时需要的头文件:在文档类的实现文件中编写添加的成员函数:16.当在视图窗口中按下鼠标右键时开始画线,鼠标右键抬起时完成线段的绘制,在鼠标移动的过程中画橡皮筋线。

因此需要记录划线的起点和终点并设置画橡皮筋线的跟踪标志。

画橡皮筋线时,需要将原来的线条删除,重新画一条从起点到当前鼠标指针坐标的线条,最简单的办法是使用R2_NOT绘图模式反转线条。

静态分割窗口与多视图实例

静态分割窗口与多视图实例

静态分割窗口与多视图实例所谓多视,是指在同一个框架窗口下同时显示多个视图。

通过运用这种技术,可以在框架的有限的空间内同时提供给用户更大的信息量,并且使得用户界面更加的友好,增强了软件的可操作性。

窗口分割的基本概念按照分割的时机的不同,窗口分割可以分为两类:动态分割和静态分割。

动态分割是指用户可以动态的分割和合并窗口。

动态分割最多可以有2行2列个窗口,并且所有的窗格只能使用同一种视图类。

静态分割是指窗口在创建时,分割窗格窗口的窗格已经创建好了,且窗格的数量和顺序不会改变了,窗格为一个分隔条所分割,用户可以拖动分割条调整相应的窗格的大小。

静态分割窗口最多可以有16行16列的窗格,但是各个窗格可以使用不同的视图类。

无论创建那一种分割,都必须在创建时指定最大的行数和列数,这些值是有CSplitterWnd 对象进行管理。

对于静态分割,必须创建指定数目的所有窗格以填满行和列。

而对于动态分割,第一个窗格将在框架创建CSplitterWnd对象时自动创建。

窗口分割支持类CSplitterWndCSplitterWnd类主要为窗口的风格提供了封装,窗口被分厂各个窗格后,又该类的对象负责管理。

对于windows而言,CSplitterWnd是一个真正的窗口,它完全占据了框架窗口的用户区域,而视图则占据了分割窗口的床片区域。

CSplitterWnd窗口不参与命令传递机制。

使用时,CSplitterWnd对象通常为其父框架窗口CFrameWnd或CMDIChildWnd(MID应用中)对象的内嵌成员。

CSplitterWnd对象创建过程如下。

在父框架窗口中嵌入CSplitterWnd类的对象成员;重载父框架窗口的CFrameWnd::OnCreateClient成员函数;从上一步重载的函数内部调用Create创建动态分割窗口或者调用CreateStatic创建静态的分割窗口。

下面介绍CsplitterWnd类的几个常用的函数创建动态分割窗口函数Create该函数用于动态创建分割窗口,同时将该窗口与类CSplitterWnd相关联,其生声明如下:BOOL Create(CWnd* pParentWnd, int nMaxRows, int MaxCol, SIZE sizeMin, CcreateContext* pContext, DOWRD dwStyle = WS_CHILD |WS_VISIBLE | WS_HSCROLL | WSVSCROLL | SPLS_DYNAMIC_SPLIT,UINT nID=AFX_IDW_PANE_FIRST);各主要参数的含义如下:pParentWnd:分割窗口的父框架窗口的指针nMaxRows和你MaxCols:行与列的最大值,二者均不大于二sizeMin:指定窗格被显示时的最小值。

MFC的窗口分割实例以及CSplitterWnd类

MFC的窗口分割实例以及CSplitterWnd类
在 MFC 的框架下,文档对象(CDocument)有一个保存其所有视图的列表,并提供了 增加视图(AddView)与删除视图(RemoveView)函数,以及当文档内容改变时通知其所 有视图的方法(UpdateAllViews)。通过多文档框架的窗口复制机制和单文档框架的分割窗 口机制是实现单文档多视图的主要方法。
3 分割窗口ቤተ መጻሕፍቲ ባይዱ
如图 1,把窗口分成三个视图,左视图基于 CView 类,可用来作几何图形;右上视图基 于 CEditView 类,用于显示文本消息;右下视图基于 CFormView 类,在此视图中做一个文 本框及发送、清除按钮,发送按钮用来向右上视图传送消息。
图 1 设计样式 打开 Microsoft VC++ 6.0,通过 MFC AppWizard(exe)新建名为 SplitWnd 的单文档(SDI) 工程,新建工程时所有选项均按默认设定。 工程建好后,把工程中的 CSplitWndView 视图类作为左视图所对应的类(该类的实现 与本文重点无关,故不阐述,有兴趣读者可与作者联系),由于需要三个视图窗口对应三个
视图类,因此需要手动创建右上视图、右下视图对应的类,可以通过 MFC 向导向应用程序 添加两个 MFC 类(菜单“Insert | New Class>”),因为在右上视图用于显示文本,故其基类选 CEditView,类名为 CLeftTopView;另一个 MFC 类的基类选 CFormView 类,取类名为 CLeftBttmView,该类即对应右下视图(由于该类基于 CFormView 类,需要有对话框与之对 应,故应先在资源中新建对话框,对话框中的控件如图 1)。
void CLeftBttmView::OnSendMsg() { UpdateData();//更新控件变量数据,文本框对应的变量为 m_sText //通过 CMainFrame 类中的 m_wndSplitterRight 变量获得右上视图类指针 CMainFrame * pMainFrm = (CMainFrame *)AfxGetApp()->GetMainWnd(); CWnd * pWnd = pMainFrm->m_wndSplitterRight.GetPane(0, 0); CLeftTopView* pLeftTopView = DYNAMIC_DOWNCAST(CLeftTopView, pWnd); pLeftTopView ->GetMsg( m_sText + "\r\n" );//CLeftTopView 成员函数,接收数据 } 右上视图类 CLeftTopView 的成员函数 GetMsg 则需保存接收到的消息并显示,主要代 码如下: void CLeftTopView::GetMsg(CString sMsg) { m_sAllMsg += sMsg; // m_sAllMsg 为成员变量,记录所有消息 int nTextLen = GetWindowTextLength(); GetEditCtrl().SetSel(nTextLen, nTextLen); GetEditCtrl().ReplaceSel( sMsg );//显示新消息 } 有了上面两个函数就可以实现右上视图类 CLeftTopView 与右上视图类 CLeftBttmView 之间的简单通讯,类似地,可以实现所有视图之间任意的数据传递。

MFC单文档窗体类的创建过程

MFC单文档窗体类的创建过程

MFC单文档窗体类的创建过程MFC(Microsoft Foundation Classes)是微软公司提供的一种面向对象的程序开发工具,用于简化Windows操作系统的应用程序开发。

MFC 提供了丰富的类库和框架,使开发人员能够更快速地创建Windows程序。

在MFC中,窗体类是常用的一种类,用于创建窗体应用程序。

本文将详细介绍MFC单文档窗体类的创建过程。

在MFC中,创建单文档窗体类的过程可以分为以下几个步骤:1.创建一个新的MFC应用程序项目首先,需要使用MFC应用程序向导创建一个新的MFC应用程序项目。

打开Visual Studio,选择“文件”->“新建”->“项目”,在“新建项目”对话框中选择“Visual C++”->“MFC”->“MFC应用程序”,并填写项目名称和保存路径,点击“确定”按钮。

接下来,按照向导的指引,选择“单文档”应用程序类型,并点击“完成”按钮。

2.添加对话框资源在MFC应用程序项目创建完成后,需要添加对话框资源。

在资源视图中,选择“添加”->“资源”->“对话框”,在弹出的对话框中输入对话框名称,并点击“确定”按钮。

此时,会自动生成一个对话框资源,可以在其中添加所需的控件。

3.创建窗体类在MFC应用程序项目中,会自动生成一个CWinApp类和一个CMainFrame类。

我们需要创建一个新的窗体类,用于承载对话框资源。

在Solution Explorer中,右击“源文件”->“添加”->“类”,在弹出的“添加类”对话框中选择“MFC”->“MFC类”->“单文档视图”,并填写类名称和保存路径,点击“添加”按钮。

此时,会自动生成一个新的窗体类,可以在其中添加处理逻辑。

4.修改窗体类代码打开新生成的窗体类的头文件和源文件,可以看到自动生成的代码。

在头文件中,需要包含所需的头文件,并声明成员变量和成员函数。

在源文件中,需要实现窗体类的构造函数、析构函数和其他成员函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单文档的窗口分割
简介部分是对于MFC应用程序的介绍,在博客上看到的,觉得受益匪浅,所以写到这里。

不需要的朋友可以从第二部分程序设计开始看起。

目录
基于单文档的窗口分割 (1)
简介 (3)
MFC应用程序类型简介 (3)
单文档与多视图 (5)
单文档多视图程序设计 (6)
Step1:创建单文档的MFC程序 (6)
Step2:声明相关的变量。

(6)
Step3:重载OnCreateClient()函数,进行窗口的分割 (7)
Step4:设置行列初始值 (9)
附:代码 (10)
简介
MFC应用程序类型简介
在Microsoft VC++ 6.0中,基于MFC的应用程序一般分为以下几种:
多文档界面(MDI)
单文档界面(SDI)
基于对话框的应用程序。

图1-1 应用程序类型
其中单文档又可分为单视图的和多视图的。

图1-2 单文档单视图
图1-3 单文档多视图
一般情况下,单文档仅需要单视图就够了,如Windows自带的记事本、画图程序等等,但
在一些情况下,单文档需要多视图支持,比如同时观察文档的不同部分,同时从不同的角度观察同一文档等。

在MFC的框架下,文档对象(CDocument)有一个保存其所有视图的列表,并提供了增加视图(AddView)与删除视图(RemoveView)函数,以及当文档内容改变时通知其所有视图的方法(UpdateAllViews)。

1-4 类视图
通过多文档框架的窗口复制机制和单文档框架的分割窗口机制是实现单文档多视图的主要方法。

单文档与多视图
一般地,单文档与多视图有三种情况:
1)在多文档界面MDI中,每个视图位于MDI的一个独立子文档框架中,视图对象基于同一个视图类。

用户可以通过“窗口|新窗口”菜单,为同一文档的视图再创建一个窗口,通过新创建的窗口,可以编辑和观察文档的另一部分,同一文档各个视图之间自动实现同步,用户修改一个视图的内容,在另外的视图中也自动更新。

MFC框架通过复制原来的子框架窗口和其中的视图来实现上面的功能,并且是完全自动的。

2)视图对象基于同一视图类,所有视图位于同一文档框架中。

分割窗口将单文档窗口的视图区分割成几个独立的视图,框架从同一视图类创建多个视图对象。

Word的子窗口即属于这种类型。

3)视图对象基于不同的视图类,所有的视图位于同一文档框架中。

多个视图共享同一文档框架,但从不同的视图类创建,每个视图可以为文档提供不同的观察和编辑方法。

比如在一个窗口里观察文档的不同部分,或者是在一个窗口里用不用类型的视图观察同一个文档。

这种类型的实现方法是通过重载框架类CMainFrame的成员函数OnCreateClient实现,用户可以根据不同需要将窗口分为垂直或水平的多个分割窗口。

单文档多视图程序设计
下面通过实例设计,介绍单文档多视图的窗口分割(上面介绍的第二种情况)。

Step1:创建单文档的MFC程序
创建一个基于MFC的应用程序,程序类型选择“单文档”,命名为“SplitterTest”。

Step2:声明相关的变量。

在MainFrm.h中添加如下变量声明。

public:
CSplitterWnd m_miansplitter;
CSplitterWnd m_leftSplitter;
CSplitterWnd m_rightSplitter;
CSplitterWnd m_leftbottom;
BOOL m_isSplitter;
并在CMainFrame的构造函数中,初始化isSplitter为FALSE
Step3:重载OnCreateClient()函数,进行窗口的分割
图2-1重载OnCreateClient()函数
在OnCreateClient()函数中添加如下代码:
这时,运行程序,会发现窗口已经被分割为多视图。

但是,需要拖动一下才显示出来。

图2-2 初步运行结果Step4:设置行列初始值
重载OnSize函数。

图2-3 重载OnSize函数在函数中添加如下代码,
此时,运行结果正常。

图2-4 最终运行结果
附:代码
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) {
// TODO: 在此添加专用代码和/或调用基类
//窗口的分割
if(m_mainsplitter.CreateStatic(this,1,2)==FALSE)
{
return FALSE;
}
if(m_leftsplitter.CreateStatic(&m_mainsplitter,2,1,WS_CHILD|WS_VISIBLE, m_mainsplitter.IdFromRowCol(0,0))==FALSE)
{
return FALSE;
}
if(m_rightsplitter.CreateStatic(&m_mainsplitter,1,2,WS_CHILD|WS_VISIBLE, m_mainsplitter.IdFromRowCol(0,1))==FALSE)
{
return FALSE;
}
if(m_leftbottom.CreateStatic(&m_leftsplitter,1,2,WS_CHILD|WS_VISIBLE, m_leftsplitter.IdFromRowCol(1,0))==FALSE)
{
return FALSE;
}
m_isSplitter = TRUE;
//绑定视图
CRect cRect;
GetClientRect(&cRect);
if(m_leftsplitter.CreateView(0,0,RUNTIME_CLASS(CSplitterTestView), CSize(cRect.Width()/2,cRect.Height()/2),pContext)==FALSE) {
return FALSE;
}
if(m_rightsplitter.CreateView(0,0,RUNTIME_CLASS(CSplitterTestView), CSize(cRect.Width()/4,cRect.Height()),pContext)==FALSE) {
return FALSE;
}
if(m_rightsplitter.CreateView(0,1,RUNTIME_CLASS(CSplitterTestView), CSize(cRect.Width()/4,cRect.Height()),pContext)==FALSE) {
return FALSE;
}
if(m_leftbottom.CreateView(0,0,RUNTIME_CLASS(CSplitterTestView), CSize(cRect.Width()/4,cRect.Height()/2),pContext)==FALSE) {
return FALSE;
}
if(m_leftbottom.CreateView(0,1,RUNTIME_CLASS(CSplitterTestView), CSize(cRect.Width()/4,cRect.Height()/2),pContext)==FALSE) {
return FALSE;
}
return TRUE;
/*return CFrameWnd::OnCreateClient(lpcs, pContext);*/
}
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
CRect crFram;
GetClientRect(&crFram);
if(m_isSplitter)
{
m_mainsplitter.SetColumnInfo(0,crFram.Width()/2,10);
m_leftsplitter.SetRowInfo(0,crFram.Height()/2,10);
m_rightsplitter.SetColumnInfo(0,crFram.Width()/4,10);
m_rightsplitter.SetColumnInfo(1,crFram.Width()/4,10);
m_mainsplitter.RecalcLayout();
}
}。

相关文档
最新文档