2 u013389985 u013389985 于 2015.06.03 10:05 提问

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

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

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

7个回答

Tiger_Zhao
Tiger_Zhao   Rxr 2015.06.03 10:23
已采纳
u010311009
u010311009   2015.06.03 10:25

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

qq_23586977
qq_23586977   2015.06.03 10:55

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

suiyunonghen
suiyunonghen   2015.06.03 11:03

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

Rainny_Sun
Rainny_Sun   2015.06.03 18:27

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

zuishikonghuan
zuishikonghuan   2015.06.03 19:09

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

zuishikonghuan
zuishikonghuan 说错了,MFC的是OnPaint
2 年多之前 回复
datou431
datou431   Rxr 2015.06.18 15:44

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!