如何在CDockablePane中用新的替换CMFCPropertyGridCtrl

埃拉米尔·奥哈娜(Elamir Ohana)

我已经在CDockablePane中创建了CMFCPropertyGridCtrl,我想用一个新的替换该CMFCPropertyGridCtrl,然后覆盖OnEraseBkgnd。OnEraseBkgnd仅在应用程序启动时调用,并且当我想通过Invalidate或InvalidateRect调用它时,它没有触发。我怎么打电话给OnEraseBkgnd?提前致谢。

void CCL2PropertiesPane::HostPropertyGridControl(CMFCPropertyGridCtrl* pPropertyGridControl)
{
  if(NULL == pPropertyGridControl)
    return;

  if(m_pPropertyGridControl)
    RemoveCurrentPropertyGridControl();

  m_pPropertyGridControl = pPropertyGridControl;
  SetWindowText(m_pPropertyGridControl->GetName());

  CRect clientRectangle;
  GetClientRect(&clientRectangle);
  m_pPropertyGridControl->Create(WS_CHILD | WS_VISIBLE, clientRectangle, this, PROPERTIES_DOCKABLE_PANE_ID);
}
//--------------------------------------------------------------------------------
void CCL2PropertiesPane::RemoveCurrentPropertyGridControl()
{

  m_pPropertyGridControl = NULL;
  SetWindowText(GetPaneName());

  CRect clientRectangle;
  GetClientRect(&clientRectangle);

  //here i want to call OnEraseBkgnd
  InvalidateRect(clientRectangle);
  //Invalidate();
}
//--------------------------------------------------------------------------------
BOOL CCL2PropertiesPane::OnEraseBkgnd(CDC* pDC)
{
  CRect clientRectangle;
  GetClientRect(&clientRectangle);

  CBrush whiteBrush(RGB(250, 250, 250));
  pDC->FillRect(clientRectangle, &whiteBrush);

  return TRUE;
}
巴马克·谢米拉尼(Barmak Shemirani)

添加ON_WM_ERASEBKGNDCCL2PropertiesPane的消息图可正确删除背景。或将FillRect功能移至OnPaint

关于:

void CCL2PropertiesPane::RemoveCurrentPropertyGridControl()
{
    m_pPropertyGridControl = NULL;
    ...
}

上面的代码适用于初始化,但它不会删除或破坏任何东西。该控件仍然存在,它只会使程序忘记如何找到该控件。要隐藏控件,请使用:

m_pPropertyGridControl->ShowWindow(SW_HIDE);

要破坏控件,请使用DestroyWindow(),但以上设置不建议这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在rdlc中用新行替换定界符

来自分类Dev

如何在urlparse中用新值替换查询?

来自分类Dev

如何在Handsontable中用新表替换旧表?

来自分类Dev

如何在rdlc中用新行替换定界符

来自分类Dev

如何在r中用“ \”替换“ /”?

来自分类Dev

如何在Python中用'替换\'?

来自分类Dev

如何在AJAX调用中的select中用新值替换初始PHP变量?

来自分类Dev

如何在xslt转换中用新行替换给定字符?

来自分类Dev

如何在片段xml文件中用新数据完全替换节点之一?

来自分类Dev

如何在房间持久性中用新列表替换项目列表?

来自分类Dev

如何在特定模型属性内容的 html <td> 中用新行替换分号?

来自分类Dev

如何在Java中用lambda替换匿名

来自分类Dev

如何在搜索网址中用-替换+

来自分类Dev

如何在Javascript中用递归替换循环?

来自分类Dev

如何在SQL中用“”,“”替换符号“”?

来自分类Dev

如何在PHP中用DOMNodeList替换DOMNode?

来自分类Dev

如何在PHP中用html标记替换%

来自分类Dev

如何在iReport中用逗号替换点?

来自分类Dev

如何在Makefiles中用envsubst替换变量?

来自分类Dev

如何在php中用_替换空格

来自分类Dev

如何在 awk 中用 <RETURN> 替换模式“,,”?

来自分类Dev

如何在Hibernate中用TableGenerator替换不推荐使用的MultipleHiLoPerTableGenerator

来自分类Dev

如何在Java中用空字符串替换'

来自分类Dev

如何在ruby哈希中用“”替换所有零值?

来自分类Dev

如何在Java中用斜杠替换所有出现的除号?

来自分类Dev

如何在JavaScript中用Promise替换'Async = false'?

来自分类Dev

如何在熊猫数据框中用ASCII替换非ASCII

来自分类Dev

如何在Spring Boot中用yml文件替换属性文件

来自分类Dev

如何在SQL中用标准日期替换日期

Related 相关文章

  1. 1

    如何在rdlc中用新行替换定界符

  2. 2

    如何在urlparse中用新值替换查询?

  3. 3

    如何在Handsontable中用新表替换旧表?

  4. 4

    如何在rdlc中用新行替换定界符

  5. 5

    如何在r中用“ \”替换“ /”?

  6. 6

    如何在Python中用'替换\'?

  7. 7

    如何在AJAX调用中的select中用新值替换初始PHP变量?

  8. 8

    如何在xslt转换中用新行替换给定字符?

  9. 9

    如何在片段xml文件中用新数据完全替换节点之一?

  10. 10

    如何在房间持久性中用新列表替换项目列表?

  11. 11

    如何在特定模型属性内容的 html <td> 中用新行替换分号?

  12. 12

    如何在Java中用lambda替换匿名

  13. 13

    如何在搜索网址中用-替换+

  14. 14

    如何在Javascript中用递归替换循环?

  15. 15

    如何在SQL中用“”,“”替换符号“”?

  16. 16

    如何在PHP中用DOMNodeList替换DOMNode?

  17. 17

    如何在PHP中用html标记替换%

  18. 18

    如何在iReport中用逗号替换点?

  19. 19

    如何在Makefiles中用envsubst替换变量?

  20. 20

    如何在php中用_替换空格

  21. 21

    如何在 awk 中用 <RETURN> 替换模式“,,”?

  22. 22

    如何在Hibernate中用TableGenerator替换不推荐使用的MultipleHiLoPerTableGenerator

  23. 23

    如何在Java中用空字符串替换'

  24. 24

    如何在ruby哈希中用“”替换所有零值?

  25. 25

    如何在Java中用斜杠替换所有出现的除号?

  26. 26

    如何在JavaScript中用Promise替换'Async = false'?

  27. 27

    如何在熊猫数据框中用ASCII替换非ASCII

  28. 28

    如何在Spring Boot中用yml文件替换属性文件

  29. 29

    如何在SQL中用标准日期替换日期

热门标签

归档