第八节-MFC类的窗口类.doc

第八节-MFC类的窗口类.doc

ID:59333938

大小:177.50 KB

页数:14页

时间:2020-09-04

第八节-MFC类的窗口类.doc_第1页
第八节-MFC类的窗口类.doc_第2页
第八节-MFC类的窗口类.doc_第3页
第八节-MFC类的窗口类.doc_第4页
第八节-MFC类的窗口类.doc_第5页
资源描述:

《第八节-MFC类的窗口类.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八节MFC类的窗口类一.视图分割首先新建一个工程,工程名为“Spiltter”,选择“单文档”,并勾选“拆分窗口”,基类为“CView”。建立完成后设置项目属性的字符为“使用多字节字符集”。引用头文件:在使用前需要添加所需的头文件(1)在SpiltterView.h中添加头文件“#include"SpiltterDoc.h"”,若不添加会出现“错误6errorC4430:缺少类型说明符-假定为int。注意:C++不支持默认int”,或者“错误5errorC2143:语法错误:缺少“;”(在“*”的前面)”的错误。(2)在“MainFrm.h”中添加“#include"SpiltterView

2、.h"”,如果缺乏此头文件,会报出“错误1errorC2653:“CSpiltterView”:不是类或命名空间名称”。(3)在工程中添加一个MFC类“CMyView”,基类为CView,建立后同时在“MainFrm.h”中添加“#include"CMyView.h"”,后面我们将会使用该类对拆分后的窗口用来显示视图。下面我们需要编写程序来对窗口进行拆分,打开“MainFrm.cpp”,添加如下代码:BOOLCMainFrame::OnCreateClient(LPCREATESTRUCT/*lpcs*/,CCreateContext*pContext){CRectrect;GetClient

3、Rect(rect);//获得客户去视图范围m_wndSplitter.CreateStatic(this,2,1,WS_CHILD

4、WS_VISIBLE

5、WS_BORDER);//创建固定视图,可以拆分视图的行列m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CSpiltterView),CSize(0,rect.Height()*0.65),pContext);m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CSpiltterView),CSize(0,0),pContext);//设置分割视图}Ctrl+F5运行

6、后如下图:二.在分割视图上打印出字我们想要在分割后的视图上显示文字,需要在“SpiltterView.cpp”的OnDraw()中添加代码:voidCSpiltterView::OnDraw(CDC*pDC){......................TextOut(pDC->m_hDC,100,100,"HelloWorld!",12);}运行后效果如下:这样我们会发现一个问题,就是两个视图的内容相同,因此我们需要考虑如何让两个视图显示不同的信息,现在我们回顾前面所讲的m_wndSplitter.CreateView,在这儿修该代码就可以实现我们设想的,另外我们开始添加了一个MFC类CMy

7、View,我们在创建View时在RUNTIME_CLASS中可以选择不同的View,把设置分割视图的代码修改如下:m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CSpiltterView),CSize(0,rect.Height()*0.65),pContext);m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CMyView),CSize(0,0),pContext);//设置分割视图但我们想要下方的视图显示不同的信息,我们就需要修改CMyView中的OnDraw();voidCMyView::OnDraw(CDC

8、*pDC){CDocument*pDoc=GetDocument();pDC->TextOut(200,100,"我是下面的视图");//TODO:在此添加绘制代码}运行后效果下面我们通过菜单栏来判断以上两个视图谁获得焦点。首先当然是在‘资源视图’中Menu菜单中添加三个菜单,ID分别为:ID_32771,ID_32772,ID_32773。并为三个菜单添加事件处理程序,但三者选择不同的基类ID_32771:CSpiltterView,“测试1”ID_32772:CMyView,“测试2”ID_32773:CMainFrame,“测试3”通过添加程序我们可以看到三者的不同之处,添加代码如下:C

9、MyView:voidCMyView::On32772(){//TODO:在此添加命令处理程序代码MessageBox("这是MyView!","",MB_OK

10、MB_YESNO);}CSpiltterView:voidCSpiltterView::On32771(){//TODO:在此添加命令处理程序代码MessageBox("这是SpiltterView!","",MB_OK

11、MB_YESNO

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

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

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