VB6调用GDI+,IDE能崩溃
VB6调用GDI+,IDE会崩溃前两天做都还没有问题的,今天启动工程,运行的时候不是出错,而是IDE整个死掉。于是我
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