MFC之CCommandLineInfo

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值