我刚刚开始学习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()
或 RedrawWindow()
。 关于c++ - MFC画圆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13124780/