我刚开始学习MFC。我需要画一个圆圈。如果我使用 OnPaint() 它可以工作。我应该怎么做它会在背景上绘制?这是正确的功能还是我应该改变它?
void Cvaja5Dlg::OnRButtonDown(UINT nFlags, CPoint point)
{
CPaintDC dc(this);
dc.Ellipse(0,0,500,500);
CDialogEx::OnRButtonDown(nFlags, point);
}
不,Windows 绘画的工作方式不同。这是相当异步的。
CPaintDC只能在WM_PAINT处理程序内部使用,因为它执行BeginPaint()/EndPaint()调用。CWnd::OnPaint()/CView::OnDraw()方法执行。isRightButtonDown并调用Invalidate()以启动窗口的异步重绘。要强制同步重绘,您可以在失效后使用UpdateWindow()or 。RedrawWindow()如果你想使用 OnRedraw() 方法重新绘制是好的......在 BeginPaint() 和 endPaint(); 使用 CPAINTDC 创建油漆处理程序的结构