我使用Visual Studio的应用程序向导来创建具有多文档界面的骨架MFC程序。当我启动这个程序时,它会自动创建一个子框架,我不希望它这样做 - 我需要主框架的客户区域为空,直到用户选择打开文件。
调试器告诉我,当应用程序类的InitInstance()函数调用ProcessShellCommand()时,会创建一个CChildFrame对象,但是什么是覆盖此行为的好入口点?
答案 0 :(得分:5)
这样可以保持打印/打开shell等。
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
if ( cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew )
{
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing ;
}
// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE;
答案 1 :(得分:4)
这对我有用 - 改变
if (!ProcessShellCommand(cmdInfo))
到
if (cmdInfo.m_nShellCommand != CCommandLineInfo::FileNew && !ProcessShellCommand(cmdInfo))
在您的应用的InitInstance()函数中。
答案 2 :(得分:1)
在InitInstance()中跳过ProcessShellCommand()调用(如果是FileNew)确实是要走的路。
答案 3 :(得分:1)
做一件事......
在此方法中: -
评论以下行.. / *
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// Dispatch commands specified on the command line. Will return FALSE if
// app was launched with /RegServer, /Register, /Unregserver or /Unregister.
if (!ProcessShellCommand(cmdInfo))
return;
* /
像这样....