c++ - MFC画圆

扫码查看

我刚刚开始学习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() 方法执行。
  • 在用户输入(例如,鼠标右键按下)时,处理程序将更改类的状态,例如设置一些bool标志isRightButtonDown并调用 Invalidate() 来启动窗口的异步重绘。要强制同步重绘,可以在无效后立即使用 UpdateWindow() RedrawWindow()
  • 关于c++ - MFC画圆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13124780/

    10-11 22:48
    查看更多