首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB6调用GDI+,IDE能崩溃

2013-01-08 
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 

热点排行