CWinApp 应用程序类共63个成员.doc_第1页
CWinApp 应用程序类共63个成员.doc_第2页
CWinApp 应用程序类共63个成员.doc_第3页
CWinApp 应用程序类共63个成员.doc_第4页
CWinApp 应用程序类共63个成员.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CWinApp 应用程序类共63个成员(由Cobject-CCmdTarget-CWinThread派生)#include CWinApp类是你派生Windows应用程序对象的基类。应用程序对象提供初始化你的应用程序(及其每个实例)的成员函数,并运行该应用程序。每个使用MFC类的应用程序只能包含一个CWinApp派生类对象。当Windows调用由MFC库提供的WinMain函数时,其它C+全局对象被创建并生效,该对象(CWinApp派生类)被创建。你应该在全局级声明它。当你从CWinApp 派生一个应用程序类时,重载InitInstance成员函数来创建应用程序的主窗口对象。在添加CWinApp成员函数时,MFC库提供下列全局函数来访问你的CWinApp对象和其它全局信息:AfxGetApp 获得CWinApp对象指针。AfxGetInstanceHandle 获得当前应用程序实例的句柄。AfxGetResourceHandle 获得应用程序资源句柄。AfxGetAppName 获得一个字符串指针,该字符串包含应用程序名称。换个方式,如果你有一个CWinApp对象指针,可用m_pszExeName来得到应用程序名称。See CWinApp: The Application Class in Visual C+ Programmers Guide for more on the CWinApp class, including an overview of the following:CWinApp-derived code written by AppWizard.CWinApps role in the execution sequence of your application.CWinApps default member function implementations.CWinApps key overridables.数据成员1、m_pszAppName指定程序名称。程序名称可来自传送给CWinApp构造函数的参数,如果没有指定,就利用ID号为AFX_IDS_APP_TITLE的资源字符串,再没有的话就使用程序的EXE文件名称。该数据成员是全局函数AfxGetAppName的返回值,它是const char*型的公共变量。注意: 如果你要给m_pszAppName赋值,必须动态分配堆栈。CWinApp的析构函数以该指针调用free( )。你可能想用_tcsdup( )运行时库函数来做内存分配,也要用还未赋新值的当前指针释放内存。举例如下:/在CWinApp启动时首先释放由MFC分配的字符串。/该字符串在InitInstance被调用前被分配。free(void*)m_pszAppName);/改变程序文件名称。/CWinApp的析构函数将释放内存。m_pszAppName=_tcsdup(_T(d:somedirmyapp.exe);例子:CWnd* pWnd;/ 设置pWnd到某些窗口已创建的CWnd对象。/ 下面调用CWnd:MessageBox使用了应用程序标题作为消息窗口名称。pWnd-MessageBox(Some message, AfxGetApp()-m_pszAppName);/ 获得程序标题更直接的途径是调用AfxGetAppName:pWnd-MessageBox(Some message, AfxGetAppName();/ 以应用程序标题作为消息框名称来显示消息框的更容易的方法/是调用AfxMessageBox:AfxMessageBox(Some message);2、m_hInstance识别当前应用程序实例。与Windows传送给WinMain的参数hInstance一致。m_hInstance数据成员是Windows应用程序当前实例的句柄,它是全局函数AfxGetInstanceHandle的返回值,是一个HINSTANCE型的公共变量。例子:/通常你不必直接传送程序的hInstance给Windows APIs,因为这与MFC/成员函数的作用等同等同,下面的例子不是通常作法:HCURSOR hCursor;hCursor = :LoadCursor(AfxGetApp()-m_hInstance,MAKEINTRESOURCE(IDC_MYCURSOR);/ 获得程序hInstance更直接的途径是调用AfxGetInstanceHandle:hCursor = :LoadCursor(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDC_MYCURSOR);/ 如果你需要用hInstance来加载一个资源,最好调用AfxGetResourceHandle/而不是AfxGetInstanceHandle:hCursor = :LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_MYCURSOR);/加载光标资源的更好途径是调用CWinApp:LoadCursorhCursor = AfxGetApp()-LoadCursor(IDC_MYCURSOR);3、m_hPrevInstance在32位程序中被设为NULL。与Windows传送给WinMain的参数hPrevInstance一致。在32位程序中该数据成员总是NULL。要查找应用程序前一个实例,可用CWnd:FindWindow。4、m_lpCmdLine指向以null结尾的字符串,该字符串指定应用程序的命令行。与Windows传送给WinMain的参数lpCmdLine一致。用m_lpCmdLine来访问当应用程序开始时用户输入的任何命令行参数。m_lpCmdLine是LPSTR型的公共变量。例子:BOOL CMyApp:InitInstance()/ .if (m_lpCmdLine0 = 0)/ Create a new (empty) document.OnFileNew();else/ Open a file passed as the first command line parameter.OpenDocumentFile(m_lpCmdLine);/ .5、m_nCmdShow指定窗口最初如何显示。与Windows传送给WinMain的参数nCmdShow一致。当你为程序主窗口调用CWnd:ShowWindow时应该将m_nCmdShow作为一个参数传送。m_nCmdShow 是整型公共变量。例子:BOOL CMyApp:InitInstance()/ ./ Create main MDI Frame window.CMainFrame* pMainFrame = new CMainFrame;if (!pMainFrame-LoadFrame(IDR_MAINFRAME)return FALSE;/ Save the pointer to the main frame window. This is the/ only way the framework will have knowledge of what the/ main frame window is.m_pMainWnd = pMainFrame;/ Show the main window using the nCmdShow parameter/ passed to the application when it was first launched.pMainFrame-ShowWindow(m_nCmdShow);pMainFrame-UpdateWindow();/ .6、m_bHelpMode指示用户是否在Help上下文模式 (典型地按SHIFT+F1呼唤)。TRUE表明程序处于Help上下文模式;否则为FALSE。在Help上下文模式,光标变成问号并且用户能在屏幕中移动它。如果你想在帮助模式实现指定操作,就检查该标志。m_bHelpMode是BOOL型公共变量。7、m_pActiveWnd这是一个当OLE服务器在位激活时指向容器程序的主窗口的指针。如果该数据成员为NULL,则应用程序没有在位激活。当框架窗口被OLE容器程序在位激活时,工作框架设置该成员变量。8、m_pszExeName应用程序的模块名称。包含应用程序的不带扩展名的可执行文件名。不象m_pszAppName,该名称不能包含空格。m_pszExeName是const char*型的公共变量。注意:如果你要给m_pszExeName赋值,必须动态分配堆栈。CWinApp的析构函数以该指针调用free( )。你可能想用_tcsdup( )运行时库函数来做内存分配,也要用还未赋新值的当前指针释放内存。举例如下:/在CWinApp启动时首先释放由MFC分配的字符串。/该字符串在InitInstance被调用前被分配。free(void*)m_pszExeName);/改变.EXE文件名称。/CWinApp的析构函数将释放内存。m_pszExeName=_tcsdup(_T(d:somedirmyapp);9、m_pszHelpFilePath指针,指向包含应用程序的帮助文件的路径的字符串。缺省方式下,工作框架初始化m_pszHelpFilePath为附带.HLP文件的应用程序名称。要改变帮助文件的名称,将m_pszHelpFilePath指向包含帮助文件完整名称的字符串。这个步骤适宜放在应用程序的初始化函数InitInstance中。m_pszHelpFilePath是const char*型的公共变量。注意:如果你要给m_pszHelpFilePath赋值,必须动态分配堆栈。CWinApp的析构函数以该指针调用free( )。你可能想用_tcsdup( )运行时库函数来做内存分配,也要用还未赋新值的当前指针释放内存。举例如下:/在CWinApp启动时首先释放由MFC分配的字符串。/该字符串在InitInstance被调用前被分配。free(void*)m_pszHelpFilePath);/改变.HLP文件名称。/CWinApp的析构函数将释放内存。m_pszHelpFilePath=_tcsdup(_T(d:somedirmyhelp.hlp);10、m_pszProfileNameconst char*型的公共变量,应用程序的.INI文件名。注意:如果你要给m_pszProfileName赋值,必须动态分配堆栈。CWinApp的析构函数以该指针调用free( )。你可能想用_tcsdup( )运行时库函数来做内存分配,也要用还未赋新值的当前指针释放内存。举例如下:/在CWinApp启动时首先释放由MFC分配的字符串。/该字符串在InitInstance被调用前被分配。free(void*)m_pszProfileName);/改变.INI文件名称。/CWinApp的析构函数将释放内存。m_pszProfileName=_tcsdup(_T(d:somedirmyini.ini);11、m_pszRegistryKey用来检测储存应用程序描述设置的全部注册键。通常它是只读态的。LPCTSTR m_pszRegistryKey;注意:如果你要给m_pszRegistryKey赋值,必须动态分配堆栈。CWinApp的析构函数以该指针调用free( )。你可能想用_tcsdup( )运行时库函数来做内存分配,也要用还未赋新值的当前指针释放内存。举例如下:/在CWinApp启动时首先释放由MFC分配的字符串。/该字符串在InitInstance被调用前被分配。free(void*)m_pszRegistryKey);/改变registry键名称。/CWinApp的析构函数将释放内存。m_pszRegistryKey=_tcsdup(_T(HKEY_CURRENT_USERSoftwaremycompanymyappthissectionthisvalue);构造12、CWinApp创建一个CWinApp对象。CWinApp( LPCTSTR lpszAppName = NULL );参数:lpszAppName 是一个null结尾的字符串,它包含供Windows使用的应用程序名称。如果该参数未被提供或为NULL,CWinApp使用资源字符串AFX_IDS_APP_TITLE或可执行文件名。备注:创建一个CWinApp对象并传送lpszAppName以应用程序名称保存。你可以创建一个由CWinApp派生的全局对象。你只能有一个CWinApp对象在应用程序中。构造函数保存指向该CWinApp对象的指针,这样WinMain就能调用该对象的成员函数来做初始化并运行该应用程序。操作13、LoadCursor加载光标资源。HCURSOR LoadCursor( LPCTSTR lpszResourceName ) const;HCURSOR LoadCursor( UINT nIDResource ) const;返回值: 如果成功,为一个光标句柄;否则为NULL。参数:lpszResourceName 指向包含光标资源名称的以null结尾的字符串指针。你可以 为该参数使用CString对象。nIDResource 光标资源的ID号码。备注:加载以lpszResourceName为名或在当前可执行文件中指定的nIDResource光标资源。LoadCursor仅在该光标先前没有被加载过时才可将它调入内存;否则,它取得已存在(内存中)的资源句柄。LoadStandardCursor或LoadOEMCursor成员函数被用来访问预定义的Windows光标。例子:HCURSOR hCursor;/加载一个光标资源,它最初由图形编辑器创建并分配了ID号IDC_MYCURSOR。hCursor = AfxGetApp()-LoadCursor(IDC_MYCURSOR);14、LoadStandardCursor加载Windows预定义的光标,其IDC_常量在WINDOWS.H中指定。HCURSOR LoadStandardCursor( LPCTSTR lpszCursorName ) const;返回值: 如果成功,为一个光标句柄;否则为NULL。参数:lpszCursorName 一个IDC_列表单,它包含指定的Windows预定义光标标识符。这些标识符定义在WINDOWS.H中。下面列出这些标识符及其含义:IDC_ARROW 标准的箭头光标IDC_IBEAM 标准的文本插入光标IDC_WAIT 沙漏光标IDC_CROSS 用于精度选择的十字光标IDC_UPARROW 向上指的箭头IDC_SIZE 废弃的;使用IDC_SIZEALLIDC_SIZEALL 四向箭头。用来重设窗口大小。IDC_ICON 废弃的;使用IDC_ARROW.IDC_SIZENWSE 左上右下双向箭头IDC_SIZENESW 右上左下双向箭头IDC_SIZEWE 水平双向箭头IDC_SIZENS 垂直双向箭头备注:LoadStandardCursor或LoadOEMCursor成员函数被用来访问预定义的Windows光标。例子:HCURSOR hCursor;/加载Windows预定义的上指光标hCursor = AfxGetApp()-LoadStandardCursor(IDC_UPARROW);15、LoadOEMCursor加载Windows OEM预定义光标,其OCR_常量在WINDOWS.H中指定。HCURSOR LoadOEMCursor( UINT nIDCursor ) const;返回值: 如果成功,为一个光标句柄;否则为NULL。参数:nIDCursor 一个OCR_列表单,它包含指定的Windows预定义光标标识符。你必须在“#include ”之前放置“#define OEMRESOURCE”来获得在WINDOWS.H中的OCR_常量的访问权。备注:加载由nIDCursor指定的Windows预定义光标资源。LoadStandardCursor或LoadOEMCursor成员函数被用来访问预定义的Windows光标。例子:/在stdafx.h文件中添加#define OEMRESOURCE来包含/在windows.h中定义的OCR_值。#define OEMRESOURCE#include / MFC核心及标准元件#include / MFC扩展(包括VB)HCURSOR hCursor;/ Load the predefined WIndows size all cursor.hCursor = AfxGetApp()-LoadOEMCursor(OCR_SIZEALL);16、LoadIcon加载图标资源。HICON LoadIcon( LPCTSTR lpszResourceName ) const;HICON LoadIcon( UINT nIDResource ) const;返回值: 如果成功,为一个图标句柄;否则为NULL。参数:lpszResourceName 指向包含图标资源名称的以null结尾的字符串指针。你可以 为该参数使用CString对象。nIDResource 图标资源的ID号码。备注:加载以lpszResourceName为名或在当前可执行文件中指定的nIDResource图标资源。LoadIcon仅在该图标先前没有被加载过时才可将它调入内存;否则,它取得已存在(内存中)的资源句柄。LoadStandardIcon或LoadOEMIcon成员函数被用来访问预定义的Windows图标。注意:该成员函数调用Win32 API函数LoadIcon,而LoadIcon仅加载大小符合系统计量值SM_CXICON和SM_CYICON的图标。17、LoadStandardIcon加载由WINDOWS.H中IDI_常量指定的Windows预定义图标。HICON LoadStandardIcon( LPCTSTR lpszIconName ) const;返回值: 如果成功,为一个图标句柄;否则为NULL。参数:lpszIconName 一个列表单,它包含指定的Windows预定义图标标识符。这些标识符定义在WINDOWS.H中。下面列出这些标识符及其含义:IDI_APPLICATION 缺省的应用程序图标IDI_HAND 手状图标,用于严重警告消息IDI_QUESTION 问号图标,用于提示消息IDI_EXCLAMATION 惊叹号图标,用于警告消息IDI_ASTERISK 星号状图标,用于通报消息备注:用LoadStandardIcon或LoadOEMIcon成员函数来访问预定义的Windows图标。18、LoadOEMIcon加载由WINDOWS.H中OIC_常量指定的WindowsOEM预定义图标。HICON LoadOEMIcon( UINT nIDIcon ) const;返回值: 如果成功,为一个图标句柄;否则为NULL。参数:nIDIcon 一个OIC_列表单,它包含指定的Windows预定义图标标识符。你必须在“#include ”之前放置“#define OEMRESOURCE”来获得在WINDOWS.H中的OIC_常量的访问权。备注:用LoadStandardIcon或LoadOEMIcon成员函数来访问预定义的Windows图标。19、RunAutomated测试程序的命令行/Automation(自动)选项是否存在。该函数已废弃。新的方法是:在调用ParseCommandLine之后使用在CCommandLineInfo:m_bRunEmbedded内的值。BOOL RunAutomated( );返回值: 如果该选项存在,返回非零;否则返回0备注:调用该函数来测试是否存在/Automation或-Automation选项,它表明服务器应用程序是否被客户应用程序发动。如果存在,该选项被移出命令行。For more information onOLE Automation, see the article Automation Servers in Visual C+ ProgrammersGuide.20、RunEmbedded测试程序的命令行/Embedding (嵌入)选项是否存在。该函数已废弃。新的方法是:在调用ParseCommandLine之后使用在CCommandLineInfo:m_bRunEmbedded内的值。BOOL RunEmbedded( );返回值: 如果该选项存在,返回非零;否则返回0备注:调用该函数来测试是否存在/Embedding或-Embedding选项,它表明服务器应用程序是否被客户应用程序发动。如果存在,该选项被移出命令行。For more information on embedding, see the article Servers: Implementing a Server in Visual C+ Programmers Guide.21、ParseCommandLine在命令行分析单个参数和标志。void ParseCommandLine( CCommandLineInfo& rCmdInfo );参数:rCmdInfo CCommandLineInfo对象的索引。备注:调用该成员函数来分析命令行及发送参数,每次一个CCommandLineInfo:ParseParam。当你用AppWizard开始一个MFC新工程,AppWizard将创建一个CCommandLineInfo的局部实例,然后在InitInstance成员函数调用ProcessShellCommand和ParseCommandLine。命令行遵循下面描述的途径:在InitInstance中被创建后,CCommandLineInfo对象被传递给ParseCommandLine。ParseCommandLine然后反复调用CCommandLineInfo:ParseParam,每次一个参数。ParseParam填充CCommandLineInfo对象,它再传递给ProcessShellCommand。ProcessShellCommand操纵命令行参数和标志。注意:需要时也可直接调用ParseCommandLine。For a description of the command-line flags, see CCommandLineInfo:m_nShellCommand.22、ProcessShellCommand操纵命令行参数及标志。BOOL ProcessShellCommand( CCommandLineInfo& rCmdInfo );返回值: 如果外壳命令被正确处理,返回非零;当从初始化函数InitInstance返回FALSE时该函数返回0。参数:rCmdInfo 对CCommandLineInfo对象的引用。备注:该成员函数被InitInstance调用来接受从由rCmdInfo定义的CCommandLineInfo对象传递的参数,并执行标定动作。当你用AppWizard开始一个MFC新工程时,AppWizard将创建一个CCommandLineInfo的局部实例,然后在InitInstance成员函数调用ProcessShellCommand和ParseCommandLine。命令行遵循下面描述的途径:在InitInstance中被创建后,CCommandLineInfo对象被传递给ParseCommandLine。ParseCommandLine然后反复调用CCommandLineInfo:ParseParam,每次一个参数。ParseParam填充CCommandLineInfo对象,它再传递给ProcessShellCommand。ProcessShellCommand操纵命令行参数和标志。CCommandLineInfo对象的成员变量由CCommandLineInfo:m_nShellCommand定义,象下面的枚举类型(定义在CCommandLineInfo类中)。enumFileNew,FileOpen,FilePrint,FilePrintTo,FileDDE,;要了解这些值的简短描述,看CCommandLineInfo:m_nShellCommand。23、GetProfileInt从应用程序的.INI文件获取一个条目。UINT GetProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault );返回值: 如果成功,为跟随指定条目字符串的整型值;如果函数没有发现该条目,则返回值是参数nDefault的值;如果符合指定条目的值不是整型值,则返回0。该成员函数支持.INI文件内的16进制标记值。当你取一个有符号整数时,应该将它转换成整型值(int)。参数:lpszSection 指向包含指定条目段的字符串的指针,该字符串以null结尾。lpszEntry 指向包含要搜索的值的条目的字符串的指针,该字符串以null结尾。nDefault 指定缺省的返回值,当工作框架没有发现该条目时。该值可以是065,535范围内的无符号值,或32,76832,767范围内的有符号值。备注:调用该成员函数来取出应用程序的.INI文件内指定段的条目内的整型值。?该成员函数对不敏感This member function is not case情况 sensitive敏感, sothe strings in the lpszSection and lpszEntry parameters may differ不同 in case万一.24、WriteProfileInt向应用程序的.INI文件的一个条目内保存一个整型值。BOOL WriteProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue );返回值: 成功为非零;否则为0。参数:lpszSection 指向包含指定条目段的字符串的指针,该字符串以null结尾。如果该段不存在,它将被创建。段名为中立字符串;该字符串可以是大小写字母的任意组合。lpszEntry 指向包含要保存的值的条目的字符串的指针,该字符串以null结尾。如果该条目在指定段内不存在,它将被创建。nValue 包含被写的值。例子:CString strSection = My Section;CString strStringItem = My String Item;CString strIntItem = My Int Item;CWinApp* pApp = AfxGetApp();pApp-WriteProfileString(strSection, strStringItem, test);CString strValue;strValue = pApp-GetProfileString(strSection, strStringItem);ASSERT(strValue = test);pApp-WriteProfileInt(strSection, strIntItem, 1234);int nValue;nValue = pApp-GetProfileInt(strSection, strIntItem, 0);ASSERT(nValue = 1234);25、GetProfileString从应用程序的.INI文件的一个条目内取出一个字符串。CString GetProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault = NULL );返回值: The为来自应用程序.INI文件的字符串,当该字符串没有被找到时为lpszDefault。工作框架支持的最大字符串长度为_MAX_PATH。如果lpszDefault是NULL,返回值为空字符串。参数:lpszSection 指向包含指定条目段的字符串的指针,该字符串以null结尾。lpszEntry 指向包含要取出的值的条目的字符串的指针,该字符串以null结尾。该值必须不是NULL。lpszDefault 指向所给条目值的缺省字符串,当该条目在初始化文件中没有被发现时。例子:CString strSection = My Section;CString strStringItem = My String Item;CString strIntItem = My Int Item;CWinApp* pApp = AfxGetApp();pApp-WriteProfileString(strSection, strStringItem, test);CString strValue;strValue = pApp-GetProfileString(strSection, strStringItem);ASSERT(strValue = test);pApp-WriteProfileInt(strSection, strIntItem, 1234);int nValue;nValue = pApp-GetProfileInt(strSection, strIntItem, 0);ASSERT(nValue = 1234);26、WriteProfileString向应用程序的.INI文件的一个条目内保存一个字符串。BOOL WriteProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue );返回值: 如果成功为非零;否则为0。参数:lpszSection 指向包含指定条目段的字符串的指针,该字符串以null结尾。如果该段不存在,它将被创建。段名为中立字符串;该字符串可以是大小写字母的任意组合。lpszEntry 指向包含要保存的值的条目的字符串的指针,该字符串以null结尾。如果该条目在指定段内不存在,它将被创建。lpszValue 指向要写的字符串的指针。如果该参数为NULL,由参数lpszEntry指定的条目将被删除。例子:CString strSection = My Section;CString strStringItem = My String Item;CString strIntItem = My Int Item;CWinApp* pApp = AfxGetApp();pApp-WriteProfileString(strSection, strStringItem, test);CString strValue;strValue = pApp-GetProfileString(strSection, strStringItem);ASSERT(strValue = test);pApp-WriteProfileInt(strSection, strIntItem, 1234);int nValue;nValue = pApp-GetProfileInt(strSection, strIntItem, 0);ASSERT(nValue = 1234);27、AddDocTemplate向应用程序的可用文档模板列表添加文档模板。void AddDocTemplate( CDocTemplate* pTemplate );参数:pTemplate 指向要添加的CDocTemplate指针。备注:调用该成员函数向应用程序的可用文档模板列表添加文档模板,这样维护应用程序。你可以在调用RegisterShellFileTypes之前给应用程序添加所有文档模板。例子:BOOL CMyApp:InitInstance()/ . / The following code is produced by AppWizard when you/ choose the MDI (multiple document interface) option.CMultiDocTemplate* pDocTemplate;pDocTemplate = new CMultiDocTemplate(IDR_MYTYPE,RUNTIME_CLASS(CMyDoc),RUNTIME_CLASS(CMDIChildWnd), / standard MDI child frameRUNTIME_CLASS(CMyView);AddDocTemplate(pDocTemplate);/ .28、GetFirstDocTemplatePosition取出第一个文档模板的位置。POSITION GetFirstDocTemplatePosition( ) const;返回值: 一个POSITION值,能被用于克隆或修改对象指针;如果列表是空的则为NULL。备注:获得应用程序中的首席文档模板的位置。由调用GetNextDocTemplate返回的 POSITION值来得到首席CDocTemplate对象。29、GetNextDocTemplate取出文档模板位置,能被递归使用。CWinApp:GetNextDocTemplateCDocTemplate* GetNextDocTemplate( POSITION& pos ) const;返回值: 指向CDocTemplate对象的指针。参数:pos 前面调用GetNextDocTemplate or GetFirstDocTemplatePosition返回的POSITION值的索引。该值在这次调用中被更新为下一个位置。备注:获得由pos鉴定的文档模板,然后将pos设置为POSITION值。如果你用GetFirstDocTemplatePosition来设定最初位置,你可以用GetNextDocTemplate循环向前。你必须确保你的POSITION值是有效的。如果它无效,则只能用MFC类库的调试版。如果取出的文档模板是最后一个有效值,则pos的新值被设为NULL。30、OpenDocumentFile被工作框架调用来从文件打开文档。CWinApp:OpenDocumentFilevirtual CDocument* OpenDocumentFile( LPCTSTR lpszFileName );返回值: 如果成功为指向CDocument的指针;否则为NULL。参数:lpszFileName 被打开的文件的名称。备注:工作框架调用该成员函数来为应用程序打开名称为CDocument的文件。如果该名称的文档已被打开,包含该文档的第一个框架窗口将被激活。如果应用程序支持多文档模板,工作框架用文件扩展名寻找适当的文档模板来试图加载该文档。如果成功,该文档模板则建立一个框架窗口并显示该文档。例子:BOOL CMyApp:InitInstance()/ .if (m_lpCmdLine0 = 0)/ Create a new (empty) document.OnFileNew();else/ 打开作为第一个命令行参数的文件。OpenDocumentFile(m_lpCmdLine);/ .31、AddToRecentFileList增加一个文件名到最近用过的文件(MRU)列表。CWinApp:AddToRecentFileListvirtual void AddToRecentFileList( LPCTSTR lpszPathName );参数:lpszPathName 文件的路径。备注:在使用该成员函数前,你可以调用LoadStdProfileSettings成员函数来加载当前MRU 文件列表。当工作框架打开文件或执行“另存为.”命令时,它调用该成员函数。例子:/ This adds the pathname c:temptest.doc to the top of/ the most recently used (MRU) list in the File menu.AfxGetApp()-AddToRecentFileList(c:temptest.doc);32、SelectPrinter由用户通过指示打印机对话框来选择打印机。CWinApp:SelectPrintervoid SelectPrinter( HANDLE hDevNames, HANDLE hDevMode, BOOL bFreeOld = TRUE );参数:hDevNames 一个DEVNAMES结构的句柄,该结构标识driver,device和指定打 印机的输出端口名称。hDevMode 一个DEVNAMES结构的句柄,该结构指定有关设备初始化和打印机 环境的信息。bFreeOld 释放以前选择的打印机。备注:调用该成员函数来选择指定打印机,并释放以前在打印机对话框中选择的打印机。如果hDevMode和hDevNames是NULL,SelectPrinter使用当前缺省打印机。33、CreatePrinterDC创建打印机设备环境。CWinApp:CreatePrinterDCBOOL Crea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论