CCommandLineInfo的说明

news/2024/7/4 1:10:37 标签: file, shell, class, 文档, 工作
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

CCommandLineInfo的说明
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)的流程,
命令类型是FILENEW时,调用的函数就是标准命令ID_FILE_NEW对应的处理函数OnFileNew;命令类型是FILEOPEN时调用的函数是OpenDocumentFile,标准命令ID_FILE_OPEN的处理函数OnFileOpen的工作实际上就是由OpenDocumentFile完成的。函数FileNew、OpenDocumentFile导致了窗口、文档的创建。 

CCommandLineInfo的说明
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)的流程,
命令类型是FILENEW时,调用的函数就是标准命令ID_FILE_NEW对应的处理函数OnFileNew;命令类型是FILEOPEN时调用的函数是OpenDocumentFile,标准命令ID_FILE_OPEN的处理函数OnFileOpen的工作实际上就是由OpenDocumentFile完成的。函数FileNew、OpenDocumentFile导致了窗口、文档的创建。 


http://www.niftyadmin.cn/n/1536250.html

相关文章

Problems loading reference ‘https://json.schemastore.org/tsconfig‘

问题:Problems loading reference ‘https://json.schemastore.org/tsconfig’: Unable to load schema from ‘https://json.schemastore.org/tsconfig’: Request vscode/content failed 原因: vscode在加载tsconfig.json文件时会向https://json.sch…

实现MFC扩展DLL中导出类和对话框

如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框。 一、创建MFC扩…

ENOENT: no such file or directory

问题:ENOENT: no such file or directory, open ‘c:\Users\Administrator\Desktop%E4%B9%A6\Vite-%E6%89%93%E5%8C%85%E5%B7%A5%E5%85%B7\my-react-app\src\App.jsx’ 利用vite打包工具,yarn dev启动项目时,报出错误:为发现App.…

kafka consumer 分区reblance算法

转载请注明原创地址 http://www.cnblogs.com/dongxiao-yang/p/6238029.html 最近需要详细研究下kafka reblance过程中分区计算的算法细节,网上搜了部分说法,感觉比较晦涩且不太易懂,还是自己抠源码比较简便一点。 kafka reblance计算部分代码…

npm全局安装node-sass,安装失败

问题:npm全局安装node-sass安装失败。 原因: 使用npm下载node-sass,可能由于网络问题被墙了。 解决: 利用cnpm全局下载node-sass包 cnpm i -g node-sass

做人做项目

转自 http://blog.csdn.net/phphot/archive/2008/08/31/2857049.aspx 一项目计划: 1.项目计划并不是一边将自己所熟悉的工作内容留给自己一边不停的说这个工作量太大,让MM来协助,你要这样的话我建议你当老总找个秘书。 2.开会: …

IDL是什么?

IDL(Interface Definition Language)即接口定义语言,是CORBA规范的一部分,是跨平台开发的基础。IDL提供一套通用的数据类型,并以这些数据类型来定义更为复杂的数据类型。可变化 IDL 基本类型 整数类型 OMG IDL 摒弃int 类型在不同平台上取值范…

mongoDB4.4版本没有mongodump和mongorestore命令

今天学习MongoDB的过程中,下载了最新4.4版本,在数据库备份和回复过程中发现没有mongodump和mongorestore命令,检查了环境变量配置和安装目录下的bin目录,发现bin目录中并没有对应的mongodump和mongorestore。 又检查了之前4.2版本…