问题描述: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, 0);