科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Visual C++.NET编程讲座之三

Visual C++.NET编程讲座之三

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本讲先来介绍程序各个类的关联机制,然后讨论文档的读过程及读操作,最后讨论文档数据的显示方法和技巧

作者:adding 来源:yesky 2007年11月16日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
2. 使用编辑控件

  "编辑控件"是一个可以让用户从键盘输入和编辑文本的控件,通过它可以输入各种文本、数字或者口令,也可使用它来编辑和修改简单的文本内容。MFC类CEdit封装了编辑控件的全部操作。

  使用编辑控件实现文档数据的显示的思路是,先在视图中创建一个与视图客户区大小相同的编辑控件,然后把文档的文本内容转送到编辑控件中。这里的视图客户区是指除了窗口标题栏、菜单栏、工具栏、状态栏以及边框之外的部分。简单地说,就是默认的背景色为白色的区域。

  实现的步骤如下:

  (1) 为CTextViewerView类添加成员变量CEdit* m_ctrlEdit。这是一个指针变量,用"添加成员变量向导"添加时,要在"变量类型"框加输入"CEdit*"(双引号不输入,注意其中的星号),而在"变量名"中输入m_ctrlEdit。

  (2) 为CTextViewerView类添加OnInitialUpdate函数的重写,并添加如图10所示的代码(加框部分)。


图10 在OnInitialUpdate中添加的代码

  new和delete分别用来为类对象分配和释放内存空间。为了避免m_ctrlEdit内存空间重复分配,我们在new操作前,要先将m_ctrlEdit内存空间释放。

  当框架将文档与视图关联,且视图将要显示时调用OnInitialUpdate函数,因此我们将视图的一些初始化代码添加到这里。

  (3) 在CTextViewerView析构函数中添加m_ctrlEdit内存空间释放的语句: if ( m_ctrlEdit ) delete m_ctrlEdit;

  (4) 由于视图大小改变后,编辑控件的大小也应随之改变,因此我们需要跟踪窗口的WM_SIZE消息,只要窗口大小发生改变后,都会发送这个消息。单击CTextViewerView类属性窗口中的"消息"按钮,添加WM_SIZE消息映射。如图11所示。


图11 添加WM_SIZE的消息映射

  (5) 在消息映射函数CTextViewerView::OnSize中添加如图12所示的代码。


图12 在OnSize中添加的代码

  (6) 运行程序,打开当前文件夹下的ReadMe.txt文件,结果如图13所示。


图13 使用编辑控件的文档数据显示结果

  评述:这种方法虽然也比较简单,且具有文本的编辑功能,但文本显示的格式还很单调,例如它的行间距和字间距无法调整,更主要的是视图的绘制功能无法起作用。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章