MFC的界面上放了几个DockPane,平时都能够正常显示,但是改变窗口大小的时候,比如把窗口拖动放大,或者把窗口拖动缩小,DockPane的小界面不能够自己更新回来,里面变成一片空白。如果我这个时候把界面最小化,然后再点击显示,DockPane的位置又能够重新正常显示。请问这个是什么原因啊?效果如下面几幅图片
正常显示,右侧的PaneDock界面里面内容和下面的按钮都能显示出来。下图不正常显示,又侧的内容都没有了,并且DockPane下面的“PLC数据”那个按钮也没了。但是如果我把界面最小化或者通过别的窗口覆盖掉,然后再让他再显示出来的时候,他又能够正常显示了。请问这是什么原因啊?要在哪里添加函数啊?求求大神指导一下啊,刚刚学习MFC,对内部的实现原理不懂啊。

解决方案 »

  1.   

    自己顶一下。昨天调试,发现系统自带的单文档程序在调整界面的时候PaneDock能够自己调整大小,但是我也没有删除什么啊,不知道为什么不能够调整大小,还是因为我在EraseBackGound里面添加了修改背景颜色吗?将背景修改成白色。
      

  2.   

    还真的是我自己在MainFrm中刷新背景把PaneDock给刷掉了。但是如果我想只获取界面除了Pane以外的部分,该用什么函数呢???
    我现在是用的
    CRect rect;
    GetClientRect(&rect); pDC->SetBkMode(TRANSPARENT); CBrush brBtnShadow(RGB(255, 255, 255));
    pDC->FillRect(&rect, &brBtnShadow);