20112426
2015-06-03 02:05
采纳率: 87.5%
浏览 2.2k
已采纳

有关winform,将一个窗体最小化后再显示会重新绘画窗体吗?

小白,刚接触这方面。在用一个窗体时遇到的问题。

我在这个窗体上画了几个形状,当我把窗体最小化后,再度点开,窗体就会重新初始化重新绘制,之前画的几个形状就没有了。这是winform的特性吗?又没有什么办法让窗体最小化后之前画的图依旧存在?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • Tiger_Zhao 2015-06-03 02:23
    已采纳
    点赞 评论
  • YesMan 2015-06-03 02:25

    吧绘画函数放到 override OnPaint 函数里,这样每次窗口需要重画的时候都会调用一次这个方法。

    点赞 评论
  • qq_23586977 2015-06-03 02:55

    窗口每次调出都会重画,需要把绘图函数放到override OnPaint函数,每次调出都会进行重画,任何绘画都一样

    点赞 评论
  • 不得闲 2015-06-03 03:03

    最小化,遮挡,或者人为发送WM_Paint,或者Invalidate等函数都会出发WM_Paint消息,一般控件都有OnPaint事件,如果要让你的内容一致显示在界面上就需要在WM_Paint消息中处理
    也就是OnPaint这类事件

    点赞 评论
  • Bluefishhh 2015-06-03 10:27

    在窗体后台代码中重写onPaint方法,绘图代码写在这个方法里

    点赞 评论
  • zuishikonghuan 2015-06-03 11:09

    会的,系统是在WM_PRINT里面重画窗口的,你用的什么做的窗口,如果是API可以在注册窗口类的WNDCLASS的设置窗口回调函数,如果不是可以用SetWindowLong设置回调函数,在WM_PRINT里BeginPrint,获取HDC(不要用GetDC了),然后画图即可,这样窗口每次重画你的图案都会画上去了,MFC有现成的onPrint,

    点赞 评论
  • 请叫我头头哥 2015-06-18 07:44

    每次调出都会进行重画,任何绘画都一样

    点赞 评论

相关推荐 更多相似问题