先上网上最通用的解决办法
http://blog.youkuaiyun.com/ke_yang/article/details/5250580
大致意思是:
// 分析标准 shell 命令、DDE、打开文件操作的命令行
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// 启用“DDE 执行”
EnableShellOpen();
RegisterShellFileTypes(TRUE);
m_nCmdShow = SW_SHOWMAXIMIZED;
// 调度在命令行中指定的命令。如果
// 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// 唯一的一个窗口已初始化,因此显示它并对其进行更新
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
m_pMainWnd->UpdateWindow();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
隐藏的一个设置,如下
void CImageBoosterView::OnInitialUpdate()
{CFormView::OnInitialUpdate();
_pv._back.ReadProfile("Settings");
_pv._grid.ReadProfile("Settings");
m_bInit = TRUE;
UpdateControlsPosition();
m_bInit = TRUE;
m_bLock = FALSE;
//MFC启动窗口最大化之后,这里经常会成为一个隐藏的设置点,注释掉之后,前面的设置就OK了。
//GetParentFrame()->RecalcLayout();
//ResizeParentToFit();
}