【问题标题】:Crash/Assertion after calling ForceRecalcLayout调用 ForceRecalcLayout 后崩溃/断言
【发布时间】:2014-12-02 12:05:47
【问题描述】:

我已将 Ribbon 添加到现有 MFC 应用程序中。

功能区是使用编辑器创建的。

在其中一个面板中,我有一个自定义 CMFCRibbonGallery(源自),其内容(图标)我动态更改。 (它很像 Excel 中的样式库。

  1. 每次更改内容后,我都会调用 ForceRecalcLayout,这通常会在 m_pHighlighted 或 m_pPressed 上生成 Assert。请参阅附加的 snaphot1.jpeg,当我在调用 ForceRecalcLayout 时将鼠标移动到功能区库元素(扩展模式弹出窗口)上时,发生了此断言。
  2. 在不同的用例中,如果我使用上下文菜单将子项(如 Excel 样式库中的“新单元格样式”)添加到 QAT,然后尝试创建新单元格样式,我会得到一个断言CMFCRibbonButton。参考snapshot2.jpg

【问题讨论】:

  • 我没有在我正在处理的代码中使用任何 ForceRecalcLayout,我一直使用 CMFCRibbonBar::RecalcLayout 方法,它适用于我迄今为止所做的任何事情,也许是不对,但它有效 =) 还有,那些快照在哪里,我在你的帖子中看不到它们

标签: mfc mfc-feature-pack cmfcribbonpanel


【解决方案1】:

仅当图标发生变化时,功能区就足够了。

仅当单个项目的大小发生更改时,您才需要调用 RecalcLayout。

我认为没有理由调用 ForceRecalsLayout。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 2013-09-26
    • 2020-10-28
    • 2021-12-25
    相关资源
    最近更新 更多