在 MFC(Microsoft Foundation Classes)中,CCommandLineInfo 类的 m_nShellCommand 是一个公共数据成员,用于指示应用程序应该执行的操作。这个成员通常用于确定应用程序启动时执行的命令。

具体而言,m_nShellCommand 的值代表了应用程序应该采取的操作,通常是从命令行参数解析而来。以下是一些 m_nShellCommand 常用的取值及其含义:

  •  CCommandLineInfo::FileNew(0):创建一个新的文档。

  •  CCommandLineInfo::FileOpen(1):打开一个现有的文档。

  •  CCommandLineInfo::FilePrint(2):打印文档。

  •  CCommandLineInfo::FilePrintTo(3):打印到指定的打印机。

  •  CCommandLineInfo::FileDDE(4):通过DDE(动态数据交换)打开文档。


以下是一个简单的示例代码,演示了如何使用 m_nShellCommand:
#include "stdafx.h"
#include "YourApp.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// CYourAppApp

BEGIN_MESSAGE_MAP(CYourAppApp, CWinApp)
    ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()

CYourAppApp::CYourAppApp()
{
    // TODO: 在此处添加构造代码,
    // 将所有重要的初始化放置在 InitInstance 中
}

// 唯一的 CYourAppApp 对象

CYourAppApp theApp;

// CYourAppApp 初始化

BOOL CYourAppApp::InitInstance()
{
    // 标准初始化
    // 如果一个控件不支持此功能,则返回 FALSE
    AfxEnableControlContainer();

    // 解析标准 shell 命令行
    CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo);

    // 根据命令确定要执行的操作
    switch (cmdInfo.m_nShellCommand)
    {
    case CCommandLineInfo::FileNew:
        // 创建新文档的操作
        break;
    case CCommandLineInfo::FileOpen:
        // 打开现有文档的操作
        break;
    // 其他命令的处理...

    default:
        // 默认的操作
        break;
    }

    return TRUE;
}

这只是一个简单的示例,实际上,你可能需要根据你的应用程序的特定需求进行更详细和复杂的处理。确保查阅相应版本的 MFC 文档以获取准确的信息。


转载请注明出处:http://www.zyzy.cn/article/detail/16043/MFC/CCommandLineInfo