MFC函数—CSingleDocTemplate
这段代码完成一项十分重要的工作:文档模板的设置。根据用户在AppWizard的第一步中的选择,首先定CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CHelloDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CHelloView));
AddDocTemplate(pDocTemplate);
义了一个单文档模板对象,然后通过这个单文档模板将应用程序的资源(由标识符IDR_MAINFRAME确定)、
文档类 CHelloDoc、主框架窗口类 CMainFrame 和视图类 CHelloView 联系在一起,最后通过调用
AddDocTemplate()函数将这一单文档模板对象加入到应用程序维护的文档模板列表中。
CSingleDocTemplate(
UINT nIDResource,
CRuntimeClass* pDocClass,
CRuntimeClass* pFrameClass,
CRuntimeClass* pViewClass
);
参数说明:
| nIDResource | 指定文档类型使用的资源ID。它可能包括菜单,图标,加速键和字符串资源。 字符串资源最多可以包含七个由‘\n’字符分割的子串(如果有一个子串没有被包括,则需要‘\n’字符作为一个占位符;尾部的‘\n’字符不是必须的);这些子串描述了文档的类型。有关子串的信息,参见CDocTemplate::GetDocString。这个字符串资源可以在应用程序的资源文件中找到。例如: // MYCALC.RC STRINGTABLE PRELOAD DISCARDABLE BEGIN IDR_MAINFRAME "MyCalc Windows Application\nSheet\nWorksheet\n Worksheets (*.myc)\n.myc\nMyCalcSheet\n MyCalc Worksheet" END 你可以使用字符串编辑器来编辑这个字符串;在字符串编辑器中整个字符串是作为一个单一的项显示的,而不是作为七个分离的项。 有关这些资源类型的更多信息,参见子串编辑器(在“Visual C++用户指南”中被描述)。 |
| pDocClass | 指向一个文档类的CRuntimeClass对象。这个类是一个CDocument派生类,是你定义来代表你的文档的。 |
| pFrameClass | 指向框架窗口类的CRuntimeClass对象。这个类可以是一个CFrameWnd派生类,或者如果你想要你的主框架窗口具有缺省的行为,它可以是一个CFrameWnd自身。 |
| pViewClass | 指向一个视类的CRuntimeClass对象。这个类是一个CView派生类,是你定义来显示你的文档的。 |
说明:
此成员函数用来构造一个CSingleDocTemplate对象。动态分配一个CSingleDocTemplate对象,并将它从你的应用程序类的InitInstance成员函数传递给CWinApp::AddDocTemplate。
示例:
BOOL CMyApp::InitInstance()
{
// ...
// 建立应用程序支持的文档类
AddDocTemplate( new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS( CSheetDoc ) ),
RUNTIME_CLASS( CFrameWnd ),
RUNTIME_CLASS( CSheetView )
);
// 此方法和本文开头第一种方法类似
}
MFC函数—CSingleDocTemplate的更多相关文章
- MFC函数之BitBlt
MFC函数之BitBlt // Cgame123View 绘制 void Cgame123View::OnDraw(CDC* pDC) { Cgame123Doc* pDoc = GetDocumen ...
- 破解 Rith's CrackMe #1(对比IDA查看动态分析中的MFC函数名)
系统 : Windows xp 程序 : Rith's CrackMe #1 程序下载地址 :http://pan.baidu.com/s/1gecW9Qr 要求 : 注册机编写 使用工具 : IDA ...
- MFC函数—SetRegistryKey
前言:在用mfc框架编写应用的时候,如果注意,你会发现在App应用类的InitInstance()函数中,初始化时总有一个 SetRegistryKey("String"); 这 ...
- MFC函数—— CWnd::PreCreateWindow
CWnd::PreCreateWindow virtual BOOL PreCreateWindow( CREATESTRUCT& cs ); 返回值: 如果要继续窗口的创建过程,则返回非零 ...
- 常见MFC函数
1.MFC常用函数:WinExec()ExitWindowsEx()GlobalMemoryStatus()GetSystemInfo()GetSystemDirectory()GetWindowsD ...
- MFC函数—CWinApp::LoadStdProfileSettings
从 InitInstance 成员函数内调用该函数,启用和加载最近使用的(MRU)文件和最后浏览状态的列表.void LoadStdProfileSettings( UINT nMaxMRU = ...
- MFC函数—— CFrameWnd::OnCreateClient
CFrameWnd::OnCreateClient virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs,CCreateContext*pContext); ...
- MFC函数——CWnd::OnEraseBkgnd
CWnd::OnEraseBkgnd afx_msg BOOL OnEraseBkgnd( CDC* pDC ); 返回值: 如果它擦除了背景,则返回非零值:否则返回0. 参数: pDC 指定了设备环 ...
- MFC函数——CWnd::OnCreate
CWnd::OnCreate afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct ); 返回值: OnCreate必须返回0以继续CWnd对象的创建 ...
随机推荐
- 搭建一台deeplearning的服务器
在计算机时代的早期,一名极客的满足感很大程度上来源于能DIY一台机器.到了深度学习的时代,前面那句话仍然是对的. 缘起在2013年,MIT科技评论将深度学习列为当年十大科技突破之首.其原因在于,模型有 ...
- javascript变量浅析
变量声明 javascript 使用var + 变量名 声明变量,因为javascript是弱类型语言, 所有我们可以随意更改已有变量的类型. var b=1; b='2', 另外不同于c#中的var ...
- VS2015中不同开发环境设置转换(C#->C++等)
backup VS2015 社区版(Community)下载地址:迅雷下载:ed2k://|file|cn_visual_studio_community_2015_x86_dvd_6847368.i ...
- 【推荐】介绍两款Windows资源管理器,Q-Dir 与 FreeCommander XE(比TotalCommander更易用的免费资源管理器)
你是否也像我一样,随着硬盘.文件数量的增加,而感到对于文件的管理越来越乏力. 于是我试用了传说中的各种软件,包括各种Explorer外壳,或者第三方资源管理器. 最后我确定下来经常使用,并推荐给您的是 ...
- WCF接口实例介绍
Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台. WCF整合了原有的windows通讯 ...
- jmeter 中 浮点数计算精度问题
jmeter 中 浮点数计算精度问题解决方法: 编写 beanshell 时使用 java.math.BigDecimal 方法构造,使用 BigDecimal 并且一定要用 String 来够造. ...
- 带你走进二进制-一次APT攻击分析
原文:https://osandamalith.com/2017/06/04/apt-attack-in-bangladesh/ 由prison翻译整理,首发i春秋 引言; 这是一次来自遥远国 ...
- 利用koa实现mongodb数据库的增删改查
概述 使用koa免不了要操纵数据库,现阶段流行的数据库是mongoDB,所以我研究了一下koa里面mongoDB数据库的增删改查,记录下来,供以后开发时参考,相信对其他人也有用. 源代码请看:我的gi ...
- underscore.js源码研究(3)
概述 很早就想研究underscore源码了,虽然underscore.js这个库有些过时了,但是我还是想学习一下库的架构,函数式编程以及常用方法的编写这些方面的内容,又恰好没什么其它要研究的了,所以 ...
- Java零基础教程(二)基础语法
Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如 ...