MFC CWnd派生类导致单文档的工具栏和状态栏在最大化和还原窗口时绘制错误

派生一个CWnd类,

实现如下

class CMyWnd: public CWnd
{
DECLARE_DYNAMIC(CMyWnd)

public:
CMyWnd();
virtual ~CMyWnd();

protected:
DECLARE_MESSAGE_MAP()

afx_msg void OnPaint(); //注释掉OnPaint的效果是一样的

};

void CMyWnd::OnPaint()

{

  //CPaintDC dc(this); //注释掉这一句将会导致BUG

  //绘制语句

}

然后在CView派生类中使用这个控件,在最大化和还原窗口时将得到如下效果图。如果是拖动窗口则会正确显示。

解决方案是必须有OnPaint函数并且有CPaintDC dc(this);

posted on 2014-05-23 00:31  回归的足迹  阅读(95)  评论(0)    收藏  举报