我是MFC初学者。当我创建一个简单的基于表单的MFC应用程序(使用VS2012)时,我发现了这个小错误,但我不知道如何解决它。
默认程序似乎记住程序的先前状态,即窗口位置,窗口大小(最大化或最小化)。因此,当程序重新打开时,程序将恢复到上次关闭的状态。
以下是查找错误的步骤:
1)打开程序
2)最大化窗口
3)关闭程序
4)重新启动程序
当我重新启动程序时,虽然窗口未处于最大化状态,但右上方窗口中的“最大化”按钮无法正确显示。它现在显示的是“恢复”图标......而不是显示最大化的图标...
如何修复此错误?
此外,如何禁用此功能,以便程序始终可以在特定位置和大小启动,无论其先前的关闭状态如何?
在m_pMainWnd-> ShowWindow(SW_SHOW)之前使用m_pMainWnd-> MoveWindow(x,y,Width,Height)函数;?
答案 0 :(得分:1)
当我使用CFormView创建默认样本时,OnInitialUpdate包含 ResizeParentToFit();
行删除它,并将应用程序最大化为先前的状态。 ResizeParentToFit,正如名称所说的那样。它调整父窗口的大小,使父窗口完全适合您创建的窗体。
如果您不想完全恢复窗口放置,请将变量 CWinApEx :: m_bLoadWindowPlacement 设置为FALSE。默认情况下,此标志设置为TRUE!