【问题标题】:MFC Drawing LinesMFC 绘图线
【发布时间】:2010-02-17 15:22:19
【问题描述】:

我在 Visual c++ 中的 SDI 应用程序上画了一些线条,当新的线条或窗口的大小发生变化时这些线条消失了,知道如何让这些线条一直可见吗?

谢谢。

RZ

【问题讨论】:

  • 展示你所做的一些例子。首先,您是否重写了 OnEraseBkgnd、OnPaint 或 OnDraw 方法?
  • 哇,刚刚看到日期,2010 年发布……哈哈。我想你想通了。

标签: visual-c++ mfc


【解决方案1】:

SDI 应用程序中的正确函数处理程序是 OnDraw。任何绘画说明都应该放在这里。

sdi/mdi-applictaions 使用 Ondraw,而对话框应用程序使用 OnPaint 可能会引起一些混淆。

线条消失的原因可能是由于 OnDraw() 的标准行为,即在调用它时将清除客户区作为其第一个操作。

更新: Ondraw 是 View 的成员

http://msdn.microsoft.com/en-us/library/e6htdchf%28VS.80%29.aspx

【讨论】:

    【解决方案2】:

    您必须在 OnPaint() 函数中绘制线条 - 每次需要显示窗口时都会调用此函数

    【讨论】:

    • 但是为SDI应用生成的所有类中都没有OnPaint()函数,那我该怎么办?
    【解决方案3】:

    您必须处理 WM_PAINT 消息。

    Windows 向您的窗口发送一条 WM_PAINT 消息,要求您的应用程序重绘全部或部分窗口。

    如果我记得 MFC(我上次使用它已经很长时间了),这意味着你必须实现 OnPaint 方法。

    【讨论】:

      猜你喜欢
      • 2011-01-18
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      相关资源
      最近更新 更多