WEB开发网
开发学院软件开发VC MFC教程(5)-- MFC对象的创建(1) 阅读

MFC教程(5)-- MFC对象的创建(1)

 2010-03-25 20:33:46 来源:WEB开发网   
核心提示:文件的创建或者打开第二步是创建或者打开文件,对于SDI程序,MFC教程(5)-- MFC对象的创建(1)(10),MFC对象的动态创建过程是在创建或者打开文件中发生的,但是为什么没有看到文件操作相关的语句呢?CCommandLineInfo首先,分析 CWinApp::ProcessShellCommand(CComm

文件的创建或者打开

第二步是创建或者打开文件。

对于SDI程序,MFC对象的动态创建过程是在创建或者打开文件中发生的。但是为什么没有看到文件操作相关的语句呢?

CCommandLineInfo

首先,需要弄清楚类CcommandLineInfo,它是用来处理命令行信息的类,CWinApp::PareCommandLine调用CCommandLineInfo的成员函数ParseParm分析启动程序时的参数,把分析结果保存在CCommandLineInfo对象的成员变量里。CCommandLineInfo的定义如下:

class CCommandLineInfo : public CObject

{

BOOL m_bShowSplash;

BOOL m_bRunEmbedded;

BOOL m_bRunAutomated;

enum { FileNew, FileOpen, FilePrint, FilePrintTo, FileDDE,

AppUnregister, FileNothing = -1 } m_nShellCommand;

// not valid for FileNew

CString m_strFileName;

// valid only for FilePrintTo

CString m_strPrinterName;

CString m_strDriverName;

CString m_strPortName;

};

由上述定义可以看出,分析结果分几类:是否OLE激活;应该执行什么动作(FileNew、FileOpen等);传递的参数(打开或打印的文件名,打印设备、端口等)。

当命令行空时,执行FileNew命令。原因在于CCommandLineInfo的缺省构造函数:

CCommandLineInfo::CCommandLineInfo()

{

m_bShowSplash = TRUE;

m_bRunEmbedded = FALSE;

m_bRunAutomated = FALSE;

m_nShellCommand = FileNew;//指定了SHELL命令操作

}

缺省构造把应该执行的动作指定为FileNew。

处理命令行命令

其次,分析 CWinApp::ProcessShellCommand(CCommandLineInfo& rCmdInfo)的流程,它处理命令行的命令,流程如图5-3所示。

上一页  5 6 7 8 9 10 11 12  下一页

Tags:MFC 教程 MFC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接