當(dāng)MFC應(yīng)用程序最小化后,程序的窗口將會(huì)被最小化到任務(wù)欄或系統(tǒng)托盤(pán)。當(dāng)你還原程序時(shí),MFC會(huì)按照之前保存的窗口布局信息還原窗口大小和位置,但是,應(yīng)用程序的布局并不一定會(huì)恢復(fù)到之前的狀態(tài),因?yàn)槌绦蛑芯唧w的實(shí)現(xiàn)和布局方式可能會(huì)影響到窗口的最終布局效果。
具體來(lái)說(shuō),MFC程序的布局有兩種實(shí)現(xiàn)方式:基于對(duì)話(huà)框的布局和基于窗口的布局。對(duì)于基于對(duì)話(huà)框的布局,程序的布局是封裝在對(duì)話(huà)框類(lèi)中的,當(dāng)程序最小化后,對(duì)話(huà)框的大小和位置會(huì)被保存,當(dāng)程序還原時(shí),對(duì)話(huà)框?qū)⒒謴?fù)到最小化前的大小和位置,并重新布局子控件。
對(duì)于基于窗口的布局,程序的布局是通過(guò)響應(yīng)WM_SIZE消息進(jìn)行的。當(dāng)程序最小化時(shí),WM_SIZE消息的尺寸參數(shù)將變成最小化后的窗口大小(0,0),程序可以在此刻保存當(dāng)前布局信息。當(dāng)程序還原時(shí),WM_SIZE消息的尺寸參數(shù)將變成還原后的窗口大小,程序可以根據(jù)之前保存的布局信息重新布局子控件。
總之,MFC程序的布局方式?jīng)Q定了程序最小化還原后的效果,如果你想要程序在最小化與還原之間保持相同的布局效果,你需要確保程序正確地保存和恢復(fù)布局信息。