欢迎来到天天文库
浏览记录
ID:32335674
大小:161.50 KB
页数:4页
时间:2019-02-03
《(已读)多界面的程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第十五章多文档界面的程序上一章我们介绍了单文档的程序,它只能打开一个文档进行编辑,要编辑或查看另一文档,当前文档就被关闭了。多文档的应用程序象WORD,VC++本身等,都可以同时打开多个文档进行操作。本章介绍创建多文档程序的基本方法。本章要点1创建一个多文档的应用程序2字符串表和修改文件对话框的过滤3创建和修改工具条15.1MCircle程序的界面和功能我们先来建立一个多文档应用程序MCircle,它的功能和上一章的Circle程序一样,按一下鼠标就画一个圆。只是它可以打开多个文档,也可以把同一个文档打开多次。创建工程打开应用程序向导,在d:myVCCH15创建应用
2、程序MCircle。选择“多文档”,注意选择“工具条和状态栏支持”,最后一步视图基类选择CView。程序运行时的界面如图chap15-01所示。图chap15-01图中打开了两个文档,MCircle2是当前文档,所以在主窗口的标题这形式了“MCircle--MCircle2”。每个子窗口的大小都可以改变,菜单条中有一个“窗口”菜单,可以对多个窗口进行排列和选择。文件菜单中有打印功能,那是在创建工程时用户自己选的。还可以保存4-10个“最近打开的”文档,这也是在在创建工程时由用户自己选定。当鼠标停留在菜单项或工具图标上时,右下角的状态栏会显示它们的功能说明。在打开文件时,
3、对话框中的文件类型会显示(*.Cir),这是我们要设置的。15.2编写代码为了画圆,需要在文档和视图类中引进表示圆心和半径的变量m_PosX、m_PosY和m_Reduse,在他们的构造函数中定义,在OnInitialUpdate()中初始化。在OnDraw()函数中画圆,添加鼠标点击消息并加入画圆的代码。各代码清单如下:1)在MCircleView.h文件的构造函数中//Implementationpublic: intm_PosX; intm_PosY; intm_Reduse; virtual~CMCircleView();2)voidCMCirc
4、leView::OnInitialUpdate(){ CView::OnInitialUpdate(); //TODO:Addyourspecializedcodehereand/orcallthebaseclass CMCircleDoc*pDoc=GetDocument(); m_PosX=pDoc->m_PosX; m_PosY=pDoc->m_PosY; m_Reduse=pDoc->m_Reduse;}3)voidCMCircleView::OnDraw(CDC*pDC){ CMCircleDoc*pDoc=GetDocument(
5、); ASSERT_VALID(pDoc); //TODO:adddrawcodefornativedatahere RECTrect; rect.left=m_PosX-m_Reduse; rect.top=m_PosY-m_Reduse; rect.right=m_PosX+m_Reduse; rect.bottom=m_PosY+m_Reduse; pDC->Ellipse(&rect);}4)voidCMCircleView::OnLButtonDown(UINTnFlags,CPointpoint){ //TODO:Addy
6、ourmessagehandlercodehereand/orcalldefault m_PosX=point.x; m_PosY=point.y; Invalidate(); CMCircleDoc*pDoc=GetDocument(); pDoc->m_PosX=m_PosX; pDoc->m_PosY=m_PosY; pDoc->m_Reduse=m_Reduse; pDoc->SetModifiedFlag(TRUE); //mycodeEND CView::OnLButtonDown(nFlags,point);}保存、
7、编译和运行,就可以看到如图01所示的程序了。15.3字符串表的修改打开工作区的resource页的StringTable,就可以看到字符串表StringTable,双击它打开一个字符串表如下图chap15-02所示:图chap15-02其中储存着程序程序中使用到的字符串。例如图中高亮显示的行是“文件/打开”菜单的ID,字符串的值为“打开一个现有文件打开”,前一半是当鼠标停留在“文件/打开”菜单项或对应的工具图标上时在状态栏中显示的提示信息,后一半是在鼠标箭头下的弹初出信息,中间用""分隔。第二行是IDR_MCIRCLTYPE,其值
此文档下载收益归作者所有