问题描述:win10操作系统下,VS2008工程调试模式下正常显示主界面窗口,使用VS2012/VS2013/VS2015环境打开VS2008工程,调试模式下应用程序转为后台进程,不显示主界面窗口;另外,非调试模式下单独执行exe正常显示主界面窗口。

分析:

多文档视图程序中:xxx.cpp有如下语句:

m_nCmdShow |= SW_MAXIMIZE;
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();

VS2008正常执行,但是之后环境(如VS2012/VS2013/VS2015) 执行存在问题。

对策:

使用SendMessage机制代替

pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
SendMessage(pMainFrame->m_hWnd, WM_SYSCOMMAND, SC_MAXIMIZE, );
05-11 01:29