精华内容
下载资源
问答
  • oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...
  • word使用技巧大全

    热门讨论 2011-03-18 20:37:53
    在Word2002中选择文档区域 15 ★禁用智能标记 15 ★WORD字体随身携带 15 ★为WORD文本加注解 16 ★快速输入特定的短语 16 ★特殊符号的输入 17 ★使用通配符进行模糊替换 17 ★Word文档与RTF文档的互换问题 17...
  • 分割窗口概述 分割窗口,顾名思义,就是将一个窗口...动态分割窗口通常用于创建同一个文档对应的个视图,而且这些视图一般都是同一类型的视图,能够用户编辑文档的不同部分时提供方便。 大家看下Word里的动...

    分割窗口概述

           分割窗口,顾名思义,就是将一个窗口分割成多个窗格,在每个窗格中都包含有视图,或者是同一类型的视图,或者是不同类型的视图。

           MFC分割窗口的方式有两种,动态分割和静态分割。

           动态分割窗口通常用于创建同一个文档对应的多个视图,而且这些视图一般都是同一类型的视图,能够在用户编辑文档的不同部分时提供方便。

           大家看下Word里的动态分割窗口就很明白了,以Word 2007文档为例,在菜单中点击视图”->“拆分,就可以看到一条随鼠标移动的分隔条,当我们在文档中某个位置按下鼠标左键时,分割条就固定了下来,生成了上下两个分割窗格,通过滚动每个窗格中的垂直滚动条可以看到,两个窗格中的内容相同,这就是所说的对应同一个文档的同一类视图。

           动态分割窗口最多可以有两行两列。

           静态分割窗口比较常见。我们经常能看到某个软件打开后,界面窗口默认被分割成了几个窗格,这就是静态分割窗口。

           静态分割窗口指在窗口创建时,分割的窗格就已经生成了,而且用户不能改变窗格的数量和顺序。静态分割窗口最多支持1616列。通常静态分割窗口的每个窗格中包含不同类的视图,当然也可以是同一类的视图。

     

    CSplitterWnd

     

           MFC中的分割窗口类-CSplitterWnd类提供了分割窗口的功能。CSplitterWnd类中包含一个分割器窗口,该分割器窗口就是一个包含多个窗格的窗口。我们分割窗口时就是直接在此分割器窗口中分割的。

    下面是三个最常用的成员函数:

     

    virtual BOOL Create(   
       CWnd* pParentWnd,   
       int nMaxRows,   
       int nMaxCols,   
       SIZE sizeMin,   
       CCreateContext* pContext,   
       DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT,   
       UINT nID = AFX_IDW_PANE_FIRST    
    );  

     

     

         创建动态分割窗口。参数pParentWnd为分割器窗口的父框架窗口;参数nMaxRows为分割器窗口的最大行数,不能超过2;参数nMaxCols为分割器窗口的最大列数,也不能超过2;参数sizeMin为窗格能显示的最小尺寸,如果窗格尺寸小于sizeMin则不显示;参数pContext为指向CCreateContext结构的指针,大多数情况下可以赋值为父框架窗口的pContext;参数dwStyle指定窗口风格;参数nID为分割窗口的ID,除非分割器窗口嵌入到另一个分割器窗口中,否则可以取值AFX_IDW_PANE_FIRST

     

     

    virtual BOOL CreateStatic(   
       CWnd* pParentWnd,   
       int nRows,   
       int nCols,   
       DWORD dwStyle = WS_CHILD | WS_VISIBLE,   
       UINT nID = AFX_IDW_PANE_FIRST    
    );  

     

        创建静态分割窗口。参数pParentWnddwStylenID同上;参数nRows为行数,不能超过16;参数nCols为列数,同样不能超过16

     

     

    virtual BOOL CreateView(   
       int row,   
       int col,   
       CRuntimeClass* pViewClass,   
       SIZE sizeInit,   
       CCreateContext* pContext    
    );  

     

         为静态分割窗口创建窗格视图。参数row指定分割器窗口中放置新视图的行;参数col指定放置新视图的列;参数pViewClass指定新视图的CRuntimeClass对象;参数sizeInit指定新视图的初始大小;参数pContext为指向CCreateContext结构的指针,通常可以赋值为传递给父框架窗口的重载函数CFrameWnd::OnCreateClientpContext参数值。

     

     

    动态分割窗口

     

           创建动态分割窗口的一般步骤为:

     

           1. 在父框架类中定义一个CSplitterWnd类型的成员对象。

     

           2. 重载父框架类的CFrameWnd::OnCreateClient成员函数。

     

           3. 在重载的CFrameWnd::OnCreateClient函数中调用CSplitterWnd成员对象的Create函数。

     

    实例:我们要实现在主框架窗口的客户区中创建两行两列的动态分割窗口。

         以下是创建动态分割窗口的具体步骤:

     

           1. MainFrm.h文件中为CMainFrame类添加成员对象:CSplitterWnd m_wndSplitter;

     

           2. Class View类视图中找到CMainFrame类,右键点击,在右键菜单中选择Properties,就会显示属性页,然后在属性页的工具栏上点击TipOverrides的按钮,下面的列表中就列出了能够重载的函数,找到OnCreateClient生成重载函数。

     

           3. MainFrm.cpp文件中找到刚重载的OnCreateClient函数修改如下:

     

    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)   
    {   
     // TODO: Add your specialized code here and/or call the base class   
     // 创建动态分割窗口,两行两列   
     return m_wndSplitter.Create(this,22, CSize(100100), pContext);   
      
     //return CFrameWndEx::OnCreateClient(lpcs, pContext);   
    }  

     

           4. Resource View资源视图中,打开Menu下的IDR_MAINFRAME菜单,在View下添加一个菜单项,Caption设为Splitter WindowID设为(一定要设为)ID_WINDOW_SPLIT。这样在运行结果界面中点击此菜单项时MFC会执行一些操作显示动态分割窗口。

           5. 运行程序,点击菜单中的View->Splitter Window菜单项,即可看到创建动态分割窗口后效果。

     

     

    静态分割窗口

     

           创建静态分割窗口的一般步骤为:

     

           1. 在父框架类中定义一个CSplitterWnd类型的成员对象。

     

           2. 重载父框架类的CFrameWnd::OnCreateClient成员函数。

     

           3. 在重载的CFrameWnd::OnCreateClient函数中调用CSplitterWnd成员对象的CreateStatic成员函数,然后可以调用CSplitterWnd成员对象的CreateView成员函数为每个窗格创建视图。 

     

    实例:在主框架窗口中的客户区创建一个两行一列的静态分割窗口。

          以下是创建静态分割窗口的具体步骤:

     

           1. MainFrm.h文件中为CMainFrame类添加成员对象:CSplitterWnd m_wndSplitter;

     

           2. Class View类视图中找到CMainFrame类,右键点击,在右键菜单中选择Properties,就会显示属性页,然后在属性页的工具栏上点击TipOverrides的按钮,下面的列表中就列出了能够重载的函数,找到OnCreateClient生成重载函数。

     

           3. MainFrm.cpp文件中找到刚重载的OnCreateClient函数进行修改。若没有新建其他视图类,则上下两个窗格的视图可以都用CExampleView。为了能识别CExampleView类,还需在MainFrm.cpp文件中添加#include "ExampleView.h",在ExampleView.h文件中添加#include "ExampleDoc.h"。最终OnCreateClient函数修改如下:

     

    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)   
    {   
        // TODO: Add your specialized code here and/or call the base class   
        CRect rc;   
      
        // 获取框架窗口客户区的CRect对象   
        GetClientRect(&rc);   
      
        // 创建静态分割窗口,两行一列   
        if (!m_wndSplitter.CreateStatic(this21))   
            return FALSE;   
      
        // 创建上面窗格中的视图   
        if (!m_wndSplitter.CreateView(00, RUNTIME_CLASS(CExampleView), CSize(rc.Width(), rc.Height()/2), pContext))   
            return FALSE;   
      
        // 创建下面窗格中的视图   
        if (!m_wndSplitter.CreateView(10, RUNTIME_CLASS(CExampleView), CSize(rc.Width(), rc.Height()/2), pContext))   
            return FALSE;   
      
        return TRUE;   
      
        //return CFrameWndEx::OnCreateClient(lpcs, pContext);   
    }  

     

          4. 运行程序,即可看到效果。

     

     

    若想在其中某个窗格中再嵌套分割窗口,那么就需要再定义一个CSplitterWnd对象,以父窗格所在的CSplitterWnd对象为父框架窗口创建分割窗口即可。

     

    实例:创建一个具有左上,左下和右边这三个视图的静态分割窗口。

          以下是创建静态分割窗口的具体步骤:

           1. MainFrm.h文件中为CMainFrame类添加成员对象:

                                  protected:
                                        CSplitterWnd m_wndSplitter;
                                        CSplitterWnd m_wndSplitter1;

           2. Class View类视图中找到CMainFrame类,右键点击,在右键菜单中选择Properties,就会显示属性页,然后在属性页的工具栏上点击TipOverrides的按钮,下面的列表中就列出了能够重载的函数,找到OnCreateClient生成重载函数。

           3. MainFrm.cpp文件中找到刚重载的OnCreateClient函数进行修改。这里可以先建好三个视图类:CMessageView,CInputView,CUserView

    最终OnCreateClient函数修改如下:

    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
    {
        // create splitter window
        if (!m_wndSplitter.CreateStatic(this, 1, 2))
            return FALSE;
    
    
        if (!m_wndSplitter1.CreateStatic(
            &m_wndSplitter,     // our parent window is the first splitter
            2, 1,               // the new splitter is 2 rows, 1 column
            WS_CHILD | WS_VISIBLE | WS_BORDER,  // style, WS_BORDER is needed
            m_wndSplitter.IdFromRowCol(0, 0)
                // new splitter is in the first row, 2nd column of first splitter
           ))
        {
            TRACE0("Failed to create nested splitter\n");
            return FALSE;
        }
    
        if(!m_wndSplitter1.CreateView(0,0, RUNTIME_CLASS(CMessageView), CSize(100,100), pContext))
        {
            m_wndSplitter.DestroyWindow();
            m_wndSplitter1.DestroyWindow();
            return FALSE;
        }
    
        if(!m_wndSplitter1.CreateView(1,0, RUNTIME_CLASS(CInputView), CSize(100,100), pContext))
        {
            m_wndSplitter.DestroyWindow();
            m_wndSplitter1.DestroyWindow();
            return FALSE;
        }
    
        if(!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CUserView), CSize(100, 100), pContext))
        {
            m_wndSplitter.DestroyWindow();
            return FALSE;
        }
    
        m_wndSplitter.SetColumnInfo(0, 450,100);
        m_wndSplitter1.SetRowInfo(0, 250, 100);
        return TRUE;
    }

     4. 运行程序,即可看到效果如下:

     

    若想创建具有左边,右上和右下这三个视图的静态分割窗口,即可修改OnCreateClient函数如下:

    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
    {
        // TODO: 在此添加专用代码和/或调用基类
        CRect rc;
        // 获取框架窗口客户区的CRect对象
        GetClientRect(&rc);
    
        //创建拆分窗口,分割为两列 
        if (!m_wndSplitter.CreateStatic(this, 1, 2))
            return FALSE;
        //把窗口第2列再分割为两行
        if (!m_wndSplitterRight.CreateStatic(&m_wndSplitter, 2, 1,WS_CHILD | WS_VISIBLE | WS_BORDER, m_wndSplitter.IdFromRowCol(0,1)))
            return FALSE;
    
        //创建视图
        if(!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CUserView), CSize(rc.Width()/4 , rc.Height()), pContext))
        {
            m_wndSplitter.DestroyWindow();
            return FALSE;
        }
    
        if(!m_wndSplitterRight.CreateView(0,0, RUNTIME_CLASS(CMessageView), CSize(rc.Width()*3/4, rc.Height()*4/5), pContext))
        {
            m_wndSplitter.DestroyWindow();
            m_wndSplitterRight.DestroyWindow();
            return FALSE;
        }
    
        if(!m_wndSplitterRight.CreateView(1,0, RUNTIME_CLASS(CInputView), CSize(rc.Width()*3/4, rc.Height()/5), pContext))
        {
            m_wndSplitter.DestroyWindow();
            m_wndSplitterRight.DestroyWindow();
            return FALSE;
        }
    
        return TRUE;
    }

     

    最后一个左边,右上和右下三视图的实例花了不少功夫,一直报错,结果是 m_wndSplitterRight.CreateView(0,0,......) 这里的 0,0 没搞清楚。

    整理于此,希望能给遇到同样问题的朋友一些帮助~~~~~

     

     

     

     

     

     

     

     

     

     

     

     

    转载于:https://www.cnblogs.com/lxt287994374/p/3419380.html

    展开全文
  • 编辑公式时,如果出现删除公式的情况,采用手动编号会使得修改量变得很大,采用自动编号和自动引用会方便很,这些功能都已经在安装mathtype后集成在word的按钮上了,将鼠标悬停在相应的按钮上就可以看到具体的...
  • 7) 改进的插入超链接功能,支持打开窗口方式的选择,并且修正原来功能FIREFOX浏览器不可用的BUG。 <br>2007/7/21 Version 3.2.3 Stable <br>Updates: 1) 修正上传功能设置为自动改名后,上传文件...
  • 后来看到一个插 件:txtBrowser,它可以高亮文本文件,而且可以像Word一样将标题大纲显示,这样很方便定位与阅读,这个插件还有很其他功能,Vimer们 可以试试,而且是国人写的哦,中文帮助文档呢。呵呵。 也许是...
  • 2004-2010软考程序员真题

    热门讨论 2012-09-27 12:33:00
     56、在word的哪种视图方式下,可以显示分页效果  A)普通 B)大纲 C)页面 D)主控文档  57、在word编辑状态,执行"文件"菜单中的"保存"命令后将所有打开的文档存盘  A)将所有打开的文档存盘  B)只能将当前...
  • 光盘提供了书中所有实例的源代码,全部源代码都经过精心调试,Windows XP/Windows 2000/Windows Server 2003等操作系统测试通过,均能够正常运行。  本书适合程序开发人员,也可供大中专院校师生阅读。 目 ...
  • 5.支持多维分类、标签、多文档关联等方式来归类整理自己的文档 6.支持共享知识库来和同事分享自己的专业研究结果 7.支持近三天、近一个月、阅读次数、日期视图、问答学习等来复习收藏的资料为自己的知识 8.支持用...
  • 5.支持多维分类、标签、多文档关联等方式来归类整理自己的文档 6.支持共享知识库来和同事分享自己的专业研究结果 7.支持近三天、近一个月、阅读次数、日期视图、问答学习等来复习收藏的资料为自己的知识 8.支持用...
  • 5.支持多维分类、标签、多文档关联等方式来归类整理自己的文档 6.支持共享知识库来和同事分享自己的专业研究结果 7.支持近三天、近一个月、阅读次数、日期视图、问答学习等来复习收藏的资料为自己的知识 8.支持用...
  • 绿色分屏软件AcerGrid

    2009-06-24 22:47:30
    平时用PC工作时,经常会遇到需要同时打开几个窗口的情况,如一边使用Word编辑文档,一边浏览网页参考资料,甚至工作比较轻松的情况,还会打开播放器欣赏一下大片,做到工作娱乐两不误。 许多朋友对此的作法是...
  • 实例191 指定目录查找文件 实例192 列举系统盘符 实例193 遍历磁盘目录 实例194 按树结构输出区域信息 实例195 分解路径和名称 实例196 数值与字符串类型的转换 实例197 使用递归过程实现阶乘运算 实例...
  • 实例191 指定目录查找文件 实例192 列举系统盘符 实例193 遍历磁盘目录 实例194 按树结构输出区域信息 实例195 分解路径和名称 实例196 数值与字符串类型的转换 实例197 使用递归过程实现阶乘运算 实例...
  • WPS 2000 提供了符合标准 Windows 95 界面的菜单、工具条、状态行、多文档窗口用户界面的同时,文档窗口的水平和垂直两个方向的标尺可方便地用于排版操作,并文档各个对象上支持上下文相关的右键快捷菜单。...
  • 文本编辑器Readiris 现在已有一个文本编辑器,让您可以保存或发送文档之前,对其中的识别结果进行编辑文本编辑器中,将已识别文字与原始扫描文字对比,并进行必要的修改。培训模式培训模式中,可培训识别系统...
  • 2)更强大的Word文档导入编辑器功能,无需特殊的服务器权限或安装客户端组件,只要拥有最基本的ASP.NET读写文件权限即可实现导入Word文档,并且还支持最新的DOCX文档格式! 3)更细致的工具栏区域划分! 4)全新的可...
  • 实例178——多文档程序实现为新建的文档设置显示字体 实例179——滚动窗口中实现绘图 实例180——实现动态滚动窗口 实例181——窗体视图(CFormView)中使用控件 实例182——列表视图(CListView)中使用...
  • C++MFC教程

    热门讨论 2013-05-21 13:37:15
    5、多文档要求不强烈时尽量避免多文档视结构,可以利用分隔条产生单文档多视结构。 6、要求多个文档间传递数据时使用多文档视结构。 7、学会利用子窗口,并自定义的子窗口包含多个控件达到封装功能的目的...
  • 实例178——多文档程序实现为新建的文档设置显示字体 实例179——滚动窗口中实现绘图 实例180——实现动态滚动窗口 实例181——窗体视图(CFormView)中使用控件 实例182——列表视图(CListView)中...
  • C++范例大全(400)

    2013-06-29 21:23:07
    实例178——多文档程序实现为新建的文档设置显示字体 实例179——滚动窗口中实现绘图 实例180——实现动态滚动窗口 实例181——窗体视图(CFormView)中使用控件 实例182——列表视图(CListView)中使用...
  • 实例178——多文档程序实现为新建的文档设置显示字体 实例179——滚动窗口中实现绘图 实例180——实现动态滚动窗口 实例181——窗体视图(CFormView)中使用控件 实例182——列表视图(CListView)中使用...
  • 9、在Word表格中,一个表格单元可以拆分成个单元格。 10、在Word中保存一个新文档时,会出现另存为对话框。 三、上机操作题 1、输入下列文字并以TEST1.DOC名存盘: **内容提要** 建筑艺术是表现性艺术,通过面、...
  • VC++6.0示例程序光盘

    热门讨论 2012-03-18 13:40:03
    实例178——多文档程序实现为新建的文档设置显示字体 实例179——滚动窗口中实现绘图 实例180——实现动态滚动窗口 实例181——窗体视图(CFormView)中使用控件 实例182——列表视图(CListView)中使用...
  • VC++6.0示例程序光盘.part1

    热门讨论 2011-02-21 09:17:43
    实例178——多文档程序实现为新建的文档设置显示字体 实例179——滚动窗口中实现绘图 实例180——实现动态滚动窗口 实例181——窗体视图(CFormView)中使用控件 实例182——列表视图(CListView)中使用...
  • 实例178——多文档程序实现为新建的文档设置显示字体 实例179——滚动窗口中实现绘图 实例180——实现动态滚动窗口 实例181——窗体视图(CFormView)中使用控件 实例182——列表视图(CListView)中使用...
  • 第一部分 界面设计

    2013-10-22 23:10:34
    实例058 如何编写多文档应用程序 实例059 如何编写COM服务器程序 实例060 如何编写COM客户端程序 实例061 如何编写DDE服务器程序 实例062 如何编写DDE客户端程序 实例063 如何编写DLL服务器程序 实例064 如何...
  • 1、备课编辑器:一款多文档模式的电子白板备课工具,供教师备课时使用,实现了文字、表格、公式、图形、音频、视频等多媒体资源的混合编辑排版。 2、媒体播放器:集成了avi、asf、mp4、wmv、mpg、mpeg、flv、f4v、...
  • 以开发人员项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java Web进行程序开发的各个方面的知识和技巧,主要包括Java Web编程基础、文件操作管理、图形图像与多媒体技术、窗体应用技术、JSP操作...
  • 会计理论考试题

    2012-03-07 21:04:40
    5.西文工作方式下不可输入汉字。( Y ) 6.微机的键盘是一种分离式的智能键盘,通过电缆与显示器连接。( N ) 7.写保护口用于保护存储软盘片上的信息,避免误写入信息或计算机病毒的侵入。( Y ) 8.常见的形码汉字...

空空如也

空空如也

1 2 3 4 5 6
收藏数 107
精华内容 42
关键字:

在word多文档窗口编辑方式下