入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

MFC之CCommandLineInfo

创建时间:2014-11-06 投稿人: 浏览次数:379
CCommandLineInfo类

CObject
└CCommandLineInfo

类CCommandLineInfo用于分析启动应用时的命令行参数。
MFC应用一般都会在它的应用对象中使用函数InitInstance创建这个类的一个本地实例。然后把该对象传给CWinApp::ParseCommandLine,ParseCommandLine又重复调用ParseParam填充CCommandLineInfo对象。最后,CCommandLineInfo对象被传给CWinApp::ProcessShellCommand来处理命令行参数和选项。
类CCommandLineInfo可以用来封装以下的命令行选项和参数:
命令行参数 执行的命令
app 建立新文件
app 文件名 打开文件
app /p 文件名 在缺省打印机上打印文件
app /pt 文件名 打印机 驱动程序 打印端口 在指定的打印机上打印文件
app /dde 启动程序并等待DDE命令
app /Automation 启动为一个OLE自动服务器
app /Embedding 启动来编辑嵌入的OLE项

要处理其它的选项,可以从类CCommandLineInfo派生一个子类,然后覆盖函数ParseParam进行相应的处理。


CWinApp::ParseCommandLine

void ParseCommandLine( CCommandLineInfo& rCmdInfo );

参数:

rCmdInfo 对CCommandLineInfo对象的引用。

说明:
调用这个函数以解析命令行并将参数发送到CCommandLineInfo::ParseParam,每次一个。
当你通过AppWizard开始一个新的MFC项目时,AppWizard将会创建一个Ccommand-LineInfo的本地实例,然后在InitInstance成员函数中调用ProcessShellCommand 和 ParseCommandLine。命令行的过程描述如下:
1.在InitInstance中被创建之后,CCommandLineInfo对象被传递给ParseCommandLine。
2.随后ParseCommandLine反复调用CCommandLineInfo::ParseParam,每次解析出一个参数。
3.ParseParam填充CCommandLineInfo对象,随后该对象被传递给ProcessShellCommand。
4.ProcessShellCommand处理命令行参数和标志。
注意:
如果需要的话,你可以直接调用ParseCommandLine。
有关命令行标志的描述参见CCommandLineInfo::m_nShellCommand。


CWinApp::ProcessShellCommand

BOOL ProcessShellCommand( CCommandLineInfo& rCmdInfo );

返回值:如果成功地处理了外壳命令,则返回非零值。如果InitInstance返回了FALSE,则返回0。

参数:

rCmdInfo 对CCommandLineInfo对象的引用。

说明:
这个成员函数被InitInstance调用,用以接收rCmdInfo所标识的CCommandLineInfo对象传递的参数,并执行指定的动作。
当你通过AppWizard开始一个MFC的新项目时,AppWizard将创建CCommandLineInfo的一个本地实例,然后在InitInstance成员函数中调用ProcessShellCommand和ParseCommandLine。命令行按照下面描述的路线传递:
1.在InitInstance中被创建以后,CCommandLineInfo对象将它传递给ParseCommand-Line。
2.随后ParseCommandLine反复调用CCommandLineInfo::ParseParam,每次解析一个参数。
3.ParseParam填充CCommandLineInfo对象,然后将之传递给ProcessShellCommand。
4.ProcessShellCommand处理命令行参数和标志。
CCommandLineInfo对象中用CCommandLineInfo::m_nShellCommand标识的数据成员属于下面的枚举类型,它在CCommandLineInfo类中定义。
enum{ FileNew,FileOpen,FilePrint,FilePrintTo,FileDDE,};


CCommandLineInfo类的成员

构造函数

CCommandLineInfo 构造一个缺省的CCommandLineInfo对象

操作
ParseParam 可以覆盖这个回调函数以分析命令行参数

数据成员
m_bShowSplash 指明是否显示飞溅型的屏幕
m_bRunEmbedded 指明是否在命令行找到了/Embedding选项
m_bRunAutomated 指明是否在命令行找到了/Automation选项
m_nShellCommand 要执行的命令
m_strFileName 待打开或打印的文件名,在命令为New或DDE时为空
m_strPrinterName 命令为Print To时指明打印机名;否则为空
m_strDriverName 命令为Print To时指明驱动程序名;否则为空
m_strPortName 命令为Print To时指明打印端口名;否则为空 

示例:

CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像