MFC中, WM_PAINT和WM_DRAW消息有啥区别?

2024-11-03 01:19:51
推荐回答(2个)
回答(1):

MFC没有WM_DRAW消息,重绘消息就是WM_PAINT。

OnPaint是对WM_PAINT的响应,在标准窗口、对话框等派生窗口中使用。

OnDraw是特殊的、只使用于CView类的重绘方法,实际上是View类封装了WM_PAINT消息,目的是为了实现视图类标准重绘准备和打印一体化支持。

View类的WM_PAINT消息,实际流程大概是这个样子:

void CView::OnPaint()

    CPaintDC dc(this);
    OnPreparDC(&dc);
    OnDraw(&dc); //调用了OnDraw
}

而在OnPrint里面同样调用了OnDraw

回答(2):

MFC中没有WM_DRAW消息