MFC:Bug on'最大化按钮'如果该程序先前在最大化状态下关闭

时间:2013-12-09 14:29:06

标签: c++ mfc window

我是MFC初学者。当我创建一个简单的基于表单的MFC应用程序(使用VS2012)时,我发现了这个小错误,但我不知道如何解决它。

默认程序似乎记住程序的先前状态,即窗口位置,窗口大小(最大化或最小化)。因此,当程序重新打开时,程序将恢复到上次关闭的状态。

以下是查找错误的步骤:

1)打开程序

2)最大化窗口

3)关闭程序

4)重新启动程序

当我重新启动程序时,虽然窗口未处于最大化状态,但右上方窗口中的“最大化”按钮无法正确显示。它现在显示的是“恢复”图标......而不是显示最大化的图标...

如何修复此错误?

此外,如何禁用此功能,以便程序始终可以在特定位置和大小启动,无论其先前的关闭状态如何?

在m_pMainWnd-> ShowWindow(SW_SHOW)之前使用m_pMainWnd-> MoveWindow(x,y,Width,Height)函数;?

1 个答案:

答案 0 :(得分:1)

当我使用CFormView创建默认样本时,OnInitialUpdate包含 ResizeParentToFit();

删除它,并将应用程序最大化为先前的状态。 ResizeParentToFit,正如名称所说的那样。它调整父窗口的大小,使父窗口完全适合您创建的窗体。

如果您不想完全恢复窗口放置,请将变量 CWinApEx :: m_bLoadWindowPlacement 设置为FALSE。默认情况下,此标志设置为TRUE!