vb怎么不用image或picture直接显示图片
vb吧
全部回复
仅看楼主
level 9
抠脽酝jq87 楼主
1L防吞
2020年05月29日 08点05分 1
level 10
loadpicture直接加载图片
2020年05月29日 08点05分 2
你的意思:本来picture1.picture = loadpicture("c:\1.jpg")改成 loadpicture("c:\1.jpg")?
2020年05月29日 08点05分
level 8
这个你需要研究一下gdiplus
2020年05月29日 08点05分 3
level 9
抠脽酝jq87 楼主
回复:@shkkgyj 你的意思:本来picture1.picture = loadpicture("c:\1.jpg")改成 loadpicture("c:\1.jpg")
2020年05月29日 08点05分 4
level 10
其实我没明白你的意思,你的标题“不用”,到底用还是不用?尴尬[吐舌]
2020年05月29日 09点05分 5
直接在form上画图,不准用form1.picture
2020年05月29日 09点05分
level 13
Option Explicit
Private pic As StdPicture
Private Sub Form_Load()
Set pic = LoadPicture("图片路径") '加载图片
'方法一:
Call Me.PaintPicture(pic, 0, 0, 100, 100) '用PaintPicture绘制图片
'方法二:
'如果要透明,要用SelectObject先入pic.Handle,然后用GdiTransparentBlt绘制
Call SelectObject(Picture1.hDC, pic.Handle) '将图片句柄选入Picture1.hDC
Call GdiTransparentBlt(Me.hDC, 100, 330, 30, 36, Picture1.hDC, 0, 0, 30, 36, &HFFFF99)
'方法三:不要PictureBox可以用CreateCompatibleDC
Dim hDCMem As Long
Dim hBmpOld As Long
hDCMem = CreateCompatibleDC(Me.hDC) '创建内存DC
hBmpOld = SelectObject(hDCMem, pic.Handle) '将图片句柄选入内存DC
Call GdiTransparentBlt(Me.hDC, 100, 330, 30, 36, hDCMem, 0, 0, 30, 36, &HFFFF99) '将内存DC中的图片绘制到Me.hDC(就是窗体上)
Call SelectObject(hDCMem, hBmpOld) '选入原hBmp
Call DeleteDC(hDCMem) '删除DC
End Sub
2020年05月29日 09点05分 6
还是大佬厉害[大拇指]
2020年05月29日 09点05分
@shkkgyj 大佬啊大佬 谢谢
2020年05月30日 07点05分
@抠脽酝jq87 回复的是6楼
2020年05月30日 07点05分
level 13
还有这样调用API比较麻烦,要声明API,可以在网上找windowsAPI.tlb,引用这个tlb可以免去API声明,而且调用相同的API速度提升1.5倍左右(API调用开消省了),对于绘图反复调用API还是有用的。手动声明的API调用时要先调用VB的DllFunctionCall,再由DllFunctionCall调用系统API,而引用tlb就不需要DllFunctionCall
2020年05月30日 08点05分 7
1