没有合适的资源?快使用搜索试试~ 我知道了~
怎样在VC++中创建基于SDI多框架多视图
4星 · 超过85%的资源 需积分: 15 85 下载量 166 浏览量
2010-09-14
13:07:15
上传
评论
收藏 132KB PDF 举报
温馨提示
试读
2页
当某一待开发的系统由几大功能模块组成,并且各个模块 在处理数据和处理方式上都有较大差异时,往往要考虑多框架 的方案,即在一个程序中同时创建多个文档/视图框架,使每 个框架有其自己的菜单、工具条、文档和视图。这样一方面封 装了各个模块的处理过程和处理数据,另一方面可使程序结构 清晰,开发和维护相对简单。
资源详情
资源评论
资源推荐
一 … ’ ~ … ’ … … … ‘ … … … … … … ‘ … 。 。 ‘ ’ ’ ’ … … ~ …
实用第一. 智慧 密集
. , … . 。 … … 。 。 . . . 。 。 . . 一 . … . .
怎样在 VC++中创建基于 SDI多框架多视 图
o 1.多框架应用
当某一待开发 的系统由几大功能模块组成 ,并且各个模块
在处理数据和处理方式上都有较大差异时,往往要考虑多框架
的方案 ,即在一个程序 中同时创建多个文档 /视图框架 ,使每
个框架有其 自己的菜单 、工具条 、文档和视 图。这样一方面封
装了各个模块的处理过程和处理数据 ,另一方面可使程序结构
清晰 ,开发和维护相对简单 。
另外 ,当遇到合并两个程序框架的问题时 ,也可通过多框
架来实现,从而免去大量不必要的劳动。
2.工程实现
(1)建立工程项 目
利用 VC++6.0向导 新建一个 名 为 NewMulFrame的 MFC
SDI(单文档 )应 用程序。
(2)增加资源 和相应命令
1)双击 Menu项 的 IDR MAINFRAME选 项 ,添加 “窗 口”
菜单项 ,在弹出菜单中添加 “创建新框架窗 El” 、 “显示新框
架 窗 口 ” 、 “显 示 新 窗 口 ” 三 个 子 菜 单 项 ,ID分 别 为
ID NEW
_ FRAMEWINDEW 、ID SHOW NEWFRAME、ID_sHOW
WINDEW,并为三个 子 菜 单 项 分 别添加基于 NewMulFrameApp
的菜 单 命 令 函数 OnNewframewindew()、OnShowNewframe()、
OnShowwindew()。
2)右键单击 Menu项 ,选择 “Insert Menu”,添加新 的菜
单资源 ,并将其 ID改为 IDR_NEWFRAME,添加 “窗 口”菜单
项 ,在弹 出菜单 中添加 “显示 原框 架窗 口”和 “显示新的窗
口 ” 两 个 子 菜 单 项 , ID 分 别 为 ID_SHOW OLDFRAME、
ID-sHOWWINDEW,添加基 于 NewMulFrameApp的子菜单项命
令函数 OnShowOldframe()和 OnShowwindew()。
(3)添加新的框架 、视图和文档类
利用 “Ctrl+W”组合键 ,调 出 “ClassWizard”对话框 ,单
击 “Add Class”按钮 ,选 择 “New”选项 ,弹出增 加 类 的 对 话
框。输入类名和基类信息 ,添加的类如下 :
类 别 基 类
CNewFrame CFrameVnd
CNewFrameDOC CDocument
CNewFrameView CView
(4)动态创建框架窗 口
1)在 NewMulFrameApp.h中加 入 私有成员变量 :
private:
CSingleDocTemplate m
_
pNewDocTem plate;
CNew Fram e m pNewFrame;
CMainFrame¥ m pM ainFram e;
2)在其构造函数 中添加如下代码 ,将变量进行初始化 :
m pNewDocTem plate =NULL;
m
_
pNew Frame :NULL;
萌盏 鹚l-[
m 33M ainFrame=NULL;
3)在 SplitterFrame.cpp中包含 如 下头文件:
撕nclude New Fram e.h
#include NewFram eDoc.h
#include New Fram eView .h
4)增加文档模板
定位到 CNewMulFrameApp.cpp中的 Initlnstance()函数 ,在
“AddDocTemplate(pDocTemplate)”后面添加如下代码 :
m pNewDocTem plate =new CSingteDocTemplate f
IDR
_
NEW FRAM E.
RUNTIME LASS《CNewFrameDoc),
RUNTlME LASS(CNewFrame),
RUNTIME LASS(CNewFrameView }j:
AddDocTemplate(m_pNewDocTemplate)://增加文档模板
ASSERT(m_pNewDocTemplate f=NULL}:
5)创建并切换到新 的框架
定 位 到 CNewMulFrameApp.cpp中的 OnNewframewindew()
函数 ,添加如下代码 : ‘
If(m_pNew Frame= =NULL)
{
m_pM ainFrame =static
_
cast<CMainFrame}>
(m_pMainW nd):
mjoM ainW nd=NULL;
jf(m pNewDocTemplate一> OpenDocum entFile f NULL)
= =NULL1
{
m33 MainW nd=static cast<CW nd}> 《m33MainFrame):
return;
)
ASSERT《m_pMainW nd!=NULL):
m_pNewFrame=static
_
cast<CNewFram e >
(m_pMainWnd):
}
if(m
_ pNewFrame!=NULL)
{
if(m pMainW nd!=mjoNewFrame)
(
m
_
pM ainFram e=static
_
cast<CMainFrame >
(m33 MainWnd):
m_j)M ainW nd=static
_
cast<CW nd}> (m_pNewFrame);
)
m _ pNewFrame一>ShowW indow (SW _SHOW ):
m
_ pNewFrame一>GetActiveView ()一> OnInitjaIUpdate();
m
_ pNewFrame一> UpdateW indow ():
)
6)显示原框架窗 口
定 位到 CNewMulFrameApp中的 OnShowOldframe()函数 ,
添加如下代码 :
m.j)M ainFram e一> ShowW indow(SW HOW ):
m
_ pNewFrame一>ShowW indow(SW IDE)
PostThreadMessage{W M )LDFRAME_FOCUS, 0, (1ong)
m
— pM ainFrame):
flying_birds
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论7