3.1如何在我的应用程序中增加一个 新类型 的 视图 或 框架窗口?
来源:互联网 发布:magnet仿真软件下载 编辑:程序博客网 时间:2024/05/01 22:28
毫无疑问,AppWizard和ClassWizard是MFC开发人员经常用的的工具,但是它们对某些简单的工作没有很大的帮助,例如在应用程序中增加另外一种类型的视图。尽管在MFC编程中,这是个基础任务,但是仍然要求很好的理解文档、文档模板(以及相关资源)、视图、视图框架窗口之间的联系。
CWinApp的InitInstance函数已经注册了它的默认文档模板,假设已经创建了一个新的视图类CNewDrawView,现在要把该视图类与应用程序链接起来。
1、创建 具有一个新的 文档模板资源ID 的资源,其ID为IDR_NEWDRAWTYPE。
2、在应用程序类中增加一个新的CMultiDocTemplate类型的指针成员变量,CMultiDocTemplate* m_ptNewDrawView;
3、在应用程序的InitInstance()函数中创建新的文档模板对象,该对象涉及IDR_NEWDRAWTYPE资源、CNewDrawView类。程序 清单如下所示:
m_ptNewDrawView=new CMultiDocTemplate(IDR_DRAWFORMTYPE,
RUNTIME_CLASS(CDrawDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CNewDrawView));
AddDocTemplate(m_ptNewDrawView);
4、现在就可以使用新文档模板了。使用EkCreateNewWindow()函数来编写程序打开一个新的窗口,该窗口使用了m_ptNewDrawView文档模板。在“3.3如何编程打开一个基于 特殊文档模板 的视图”中讨论了EkCreateNewWindow()函数。如果打算在应用程序中增加一个新类型的框架窗口(),则遵循相同的步骤,只需要在第三步构造新的文档模板时,传递新类型的框架窗口,而不是标准的CChildFrame类。
当用户选择相应的菜单命令或工具栏按钮时,就可以调用EkCreateNewWindow()函数来打开一个新的窗口,我选择在文档类中处理这些命令,对该技术而言,查找与新视图关联的文档是微不足道的。
void CDrawDoc::OnWindowNewformview()
{
EkCreateNewWindow(theApp.m_ptDrawFormView , this );
}
附加注释:
如果希望CNewDrawView类具有特殊的行为,即显示新的菜单命令,那么可以把这些命令增加到在第一步中创建的IDR_NEWDRAWTYPE菜单资源中。MFC自动的交换菜单并跟踪活动视图。
- 3.1如何在我的应用程序中增加一个 新类型 的 视图 或 框架窗口?
- 如何使用在某个“文档模板”中确定的视图、框架窗口来打开一个新视图?
- 6.1--如何在主框架窗口或者视图的框架窗口加入一个或多个工具栏?
- 6.9--如何为视图的框架窗口增加一个定制的状态栏?
- 如何在quicksettings中增加一个新的buttons
- 在框架窗口中如何获得,视图类的指针以及文档,视图,框架窗口指针的获取与应用
- 3.22在应用程序中如何修改与各个类型的窗口相关联的图标?
- 如何能在销售订单中增加新视图
- 如何动态地切换MDI子窗口或者在SDI主应用程序窗口显示的视图?
- 上篇文章介绍如何在settings中增加一个新模块,那如何隐藏一个已经存在的模块呢?
- 在一个表中增加新的记录
- 如何在NS2中增加新的路由协议
- java 在窗口中如何定义一个文本框类型的数组
- 如何在一个应用程序中打开其他的应用程序
- 如何在一个应用程序中打开其他的应用程序
- C++--在单文档的应用程序增加多个视图
- C++--在单文档的应用程序增加多个视图
- 如何在一个视图上增加菜单
- 五笔输入法
- 分享多年美工工作收集的小工具和经验
- vc++之selectclippath
- ExtJs Grid GroupingView 单击分组标题不展开子项目2
- 小鱼儿经典语录
- 3.1如何在我的应用程序中增加一个 新类型 的 视图 或 框架窗口?
- vc++之createpointfont
- Visual Studio相关电子资料、软件汇总:
- 收拾行装,向CString说拜拜
- ASP.NET 面试题 合集
- QT Tree model
- vc++之gettextmetrics
- 淘宝助理的sqlite3数据库解密
- NOR Flash 的BANK理解