请问 api绘图调用后如何彻底释占用的放内存

SenseKey 2002-05-24 02:19:06
用api绘图函数比如createpen()->movetoex()->lineto()绘图之后如何彻底释放掉所占的内存空间,或者有什么更好的绘图方法。尽量少占内存空间?
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
288794 2002-05-24
  • 打赏
  • 举报
回复
先删除 hDC,然后删除 GDI 对象
rise139 2002-05-24
  • 打赏
  • 举报
回复
这是 bitsoft 帮我改的,希望也能帮助你拉

看看如下更改和增加的地方,是否能帮你:
================================================
for i=1 to 3000
'设置笔的颜色和类型PS_DOT 虚线,PS_SOLID实线
LP.lopnStyle = PS_SOLID
LP.lopnColor = vbRed
'创建红色的笔
hRPen = CreatePenIndirect(LP)
'选择笔
lll = SelectObject (fShow.hDC, hRPen) '改

'
' ................ 线绘制过程
'
'

'删除笔
SelectObject fShow.hDC,lll '加
DeleteObject hRPen

'创建青色刷子
hFFBrush = CreateSolidBrush(&HC0C000) '改
'选择青色刷子
l1 = SelectObject (fShow.hDC, hFFBrush)
'设置笔颜色和类型PS_DOT 虚线,PS_SOLID实线
LP.lopnStyle = PS_SOLID
LP.lopnColor = &HC0C000
'创建青色的笔
hRPen = CreatePenIndirect(LP)
'选择青色的笔
l2 = SelectObject( fShow.hDC, hRPen) '改

'
' ................实心方框绘制过程
'
'

'删除刷子
SelectObject fShow.hDC,l1 '加
DeleteObject hFFBrush
'删除笔
SelectObject fShow.hDC,l2 '加
DeleteObject hRPen
next
rise139 2002-05-24
  • 打赏
  • 举报
回复
这是我曾遇到的问题。已经解决了,你自己看吧

http://www.csdn.net/expert/topic/728/728885.xml?temp=1.089114E-02
SenseKey 2002-05-24
  • 打赏
  • 举报
回复
但是我发觉好像不能完全彻底的释放掉阿,如果我这样做,我循环的创建画笔--〉绘图——〉删除,过一会就会内存溢出
shawls 2002-05-24
  • 打赏
  • 举报
回复
一般都有一个对应的api用来删除的,作用就是释放内存空间!
poplib 2002-05-24
  • 打赏
  • 举报
回复
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Declare Function CreatePen Lib "gdi32" Alias "CreatePen" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long

dim hPen as long
hPen=CreatePen(必要参数)
DeleteObject hPen ‘释放掉pen的资源

我不知道你要绘什么东西。具体的方法可以查API或MSDN。

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧