vb点虐 添加gdi vbnet implements

VB点虐 利用GDI截图内存不断增加的问题

你光create位图,不释放,肯定崩溃呀。的释放,DeleteObject释放Bitmap,DeleteDC释放DC,另外Graphics.FromHwnd(Form1.DIVPanel.Handle)返回的DC也需要释放,代码改成这样:

10年积累的网站设计制作、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有登封免费网站建设让你可以放心的选择与我们合作。

Function GetSerPic(Optional ByVal BitWidth As Integer = -1, Optional ByVal BitHeight As Integer = -1) As Image

Dim g As Graphics = Graphics.FromHwnd(Me.DIVPanel.Handle)

Dim SourceDC As Long = g.GetHdc()

Dim Bhandle, DestDC As Long, Old As Long

DestDC = CreateCompatibleDC(SourceDC)

Bhandle = CreateCompatibleBitmap(SourceDC, BitWidth, BitHeight)

Old = SelectObject(DestDC, Bhandle)

BitBlt(DestDC, 0, 0, BitWidth, BitHeight, SourceDC, 0, 0, HCC0020)

Dim bmp As Bitmap = Image.FromHbitmap(Bhandle)

SelectObject(DestDC, Old)

DeleteObject(Bhandle)

DeleteDC(DestDC)

g.ReleaseHdc()

Return bmp

End Function

请教如何利用VB加载GDI+

shell "路径" ;先调用

然后

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Private Sub Form_Load()

Me.Hide

Me.AutoRedraw = True

BitBlt Me.hDC, 0, 0, Screen.Width, Screen.Height, GetDC(0), 0, 0, vbSrcCopy

sFile$ = "C:\" Format(Now, "mmddhhmmss") ".BMP"

SavePicture Me.Image, sFile

MsgBox "当前屏幕图像已经保存到" sFile, 64

End

End Sub ;保存截图

vb点虐 GDI+

当然是全部重画。

层只不过是制图软件弄出来的一个方便的东西而已。

就像你画画,画上去如果你要擦掉当然是擦到底色咯。(当然GDI+也可以像你画画一样只擦一部分)

GDI+时钟我写过一个VB6的。代码详见我博客。地址显然百度不让贴上= =。所以你可以看下我的资料。

你可以模拟层,就是把所有绘制信息都保存起来。你的流程应当是:

如果要绘制了,更新绘制信息(可以是数组啥的。),交给一个Draw过程

Draw过程:根据绘制信息,全部绘制。

By vIstaswx ,before junior school graduation exam.

vb点虐 GDI ,不是系统的字体,是工程目录下的字体文件

GDI绘图用字体必须安装才能使用

在客户机部署应用程序时,安装该字体就行


网页题目:vb点虐 添加gdi vbnet implements
文章URL:http://ybzwz.com/article/ddgeggd.html