問題描述: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);