0

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

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

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

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

1 回答 1

0

当仅图标更改时,足以使功能区无效。

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

我认为没有理由调用 ForceRecalsLayout。

于 2014-12-19T08:41:00.247 回答