桌依婷的特点:Visual C .NET编程讲座之三(5)
来源:百度文库 编辑:偶看新闻 时间:2024/04/27 17:20:59
Visual C++.NET编程讲座之三(5)
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 使用编辑控件的文档数据显示结果
评述:这种方法虽然也比较简单,且具有文本的编辑功能,但文本显示的格式还很单调,例如它的行间距和字间距无法调整,更主要的是视图的绘制功能无法起作用。
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 使用编辑控件的文档数据显示结果
评述:这种方法虽然也比较简单,且具有文本的编辑功能,但文本显示的格式还很单调,例如它的行间距和字间距无法调整,更主要的是视图的绘制功能无法起作用。
Visual C#.NET编程精粹150例...???有地址吗??
没有一点编程基础学习Visual C++.NET 如何开始
visual c ++.net
visual c++.net问题
visuaL c++.net
哪里能下载《Visual C#.NET应用编程150例》的电子书呢
想知道Visual C++.net是什么。想学这种编程技术要买哪种软件?
毕业设计需要C#,.net数据库编程,visual Studio .net2005方面的资料,谢谢提供!
新手入门,visual c++.net 求救
哪能下载visual c++.net
C#.Net 编程规范。
C#.Net语言编程
C语言,C++,Visual C,Visual C++,Visual C.#,Visual C.net是怎样的关系?
c#,c#.net,visual c#.net什么区别???
c#.net与visual c#.net有什么区别?
c#.NET编程高手来~~
Visual C++.net是什么语言的编缉器呀
关于visual c#.NET 的安装配置
在哪下载Visual C#.NET??
用多媒体学《Visual C#.NET》
关于 Visual Studio .NET 2003 [c++]设置?
visual C++.net在哪下载
Visual C++ 6.0 vs Visual C++.NET:鱼与熊掌?
visual c++6.0好还是visual c++.net好?