none
请问,outlookbar是怎么记忆上一次打开的状态的呢? RRS feed

  • 问题

  • 当我打开程序时候,outlookbar中正在显示的是 工作组,这个pane

    然后,我选择切换到,虚拟磁盘

    此时。我关闭程序。再次打开后,程序显示的就是虚拟磁盘了。

    我在,官方对于 outlookbar 的文档介绍中没有看到有用的信息。

    https://docs.microsoft.com/en-us/cpp/mfc/reference/cmfcoutlookbar-class?view=vs-2019

    请问,我该如何改变这种“默认的”行为?

    我知道可以通过

    CMFCOutlookBarTabCtrl::SetActiveTab()
    

    强制改变。但是这种强制改变不是我想要的。我希望能够在“默认的”过程中加入一些变化。

    2020年7月20日 9:05

全部回复

  • 你好:

    感谢您在MSDN中文论坛发帖提问。

    >>请问,outlookbar是怎么记忆上一次打开的状态的呢?请问,我该如何改变这种“默认的”行为?

    我认为这是因为当我们改变outlookbar的一些状态时, 系统会自动将这些值写入注册表中。这将导致,当重新打开应用程序时, 会自动读取注册表中的值,使其保持上一次关闭之前的状态。

    我建议您可以尝试将以下代码添加到ExitInstance。使用CleanState将从Windows注册表中删除有关该应用程序的所有信息。

    	//TODO: handle additional resources you may have added
    	AfxOleTerm(FALSE);
            this->CleanState();
    
    	return CWinAppEx::ExitInstance();

    Best Regards,

    Jeanine Zhang


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2020年7月21日 2:41
    版主
  • 你好。

     this->CleanState();

    并不是我想要的,仍然感谢你的回复。这给了我一定的思路。

    2020年7月22日 2:51
  • 你好,

    你也可以尝试使用CMDIFrameWndEx :: SaveMDIState来保存“MDI选项卡式组”的当前布局。然后再调用CMDIFrameWndEx :: LoadMDIState函数来加载“ MDI选项卡式组”的指定布局。

    Best Regards,

    Jeanine Zhang


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2020年7月22日 7:34
    版主