调用ForceRecalcLayout后出现崩溃/断言

时间:2014-12-02 12:05:48

标签: mfc mfc-feature-pack cmfcribbonpanel

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

使用编辑器创建功能区。

在其中一个面板中,我有一个Custom CMFCRibbonGallery(派生自),其内容(图标)我动态更改。 (它很像Excel中的Styles Gallery。

  1. 每次更改内容后,我都会调用ForceRecalcLayout,大部分时间通常会在m_pHighlighted或m_pPressed上产生Assert。请参阅附带的snaphot1.jpeg,当我在调用ForceRecalcLayout时将鼠标移动到Ribbon Gallery元素(Expanded模式弹出窗口)时发生了Assert。
  2. 在另一个用例中,如果我使用上下文菜单将子项添加(如我们有#34;新单元样式"在Excel样式库中)到QAT,然后尝试创建一个新的单元格样式我在CMFCRibbonButton上得到一个Assert。请参阅snapshot2.jpg

1 个答案:

答案 0 :(得分:0)

只需更改图标即可使功能区无效。

只有更改单个项目的大小时,才需要调用RecalcLayout。

我认为没有理由调用ForceRecalsLayout。