读书人

VB6调用GDI+IDE能崩溃

发布时间: 2013-01-08 14:02:13 作者: rapoo

VB6调用GDI+,IDE会崩溃
前两天做都还没有问题的,今天启动工程,运行的时候不是出错,而是IDE整个死掉。于是我就在整个程序开始的地方开始调试,发现到了


GdipTranslateRegion VolumeBarBregion, (X - xl) * 1.03, 0

时就会死掉。也不知道为什么。

我是将GDI+用到控件设计中,下面的代码是绘制界面的。按道理来说在用GdipCreateFromHDC函数创建一个graphics对象之后,只要这个对象不被销毁,在后续的绘图中就应该可以一直使用它。但实际上却不行,每一次绘图都要重新调用GdiplusStartup函数和GdipCreateFromHDC函数,不调用的话就画不出任何图像(在下面的代码中,有一个Terminate子程序,里面的GdipDeleteGraphics graphics语句即使去掉也不行)。也不知道为什么。


[解决办法]
VB中用GDI+要在sub main或者程序的最开始的执行初始化(GdiplusStartup),在程序结束的时候调用GdiplusShutdown ,不要多次初始化。

然后UserControls.Cls会导致原先用GdipCreateFromHDC创建的 Graphics对象无效的,所以必须重新创建。

看看这篇文章在增加点理解吧

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=69434&lngWId=1


FYI: GDI+ Crash in IDE

读书人网 >VB

热点推荐