请问:为什么BitBlt这个API和这个MERGECOPY常量一起使用的时候,对图片好象没有反应呢?请热心的朋友,帮帮忙哦!在此,先谢过帮忙的朋友了!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 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 LongPrivate Const BLACKNESS = &H42 ' (DWORD) dest = BLACK
Private Const DSTINVERT = &H550009 ' (DWORD) dest = (NOT dest)
Private Const MERGECOPY = &HC000CA ' (DWORD) dest = (source AND pattern)
Private Const MERGEPAINT = &HBB0226 ' (DWORD) dest = (NOT source) OR dest
Private Const NOTSRCCOPY = &H330008 ' (DWORD) dest = (NOT source)
Private Const NOTSRCERASE = &H1100A6 ' (DWORD) dest = (NOT src) AND (NOT dest)
Private Const PATCOPY = &HF00021 ' (DWORD) dest = pattern
Private Const PATINVERT = &H5A0049 ' (DWORD) dest = pattern XOR dest
Private Const PATPAINT = &HFB0A09 ' (DWORD) dest = DPSnoo
Private Const SRCAND = &H8800C6 ' (DWORD) dest = source AND dest
Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = source
Private Const SRCERASE = &H440328 ' (DWORD) dest = source AND (NOT dest )
Private Const SRCINVERT = &H660046 ' (DWORD) dest = source XOR dest
Private Const SRCPAINT = &HEE0086 ' (DWORD) dest = source OR dest
Private Const WHITENESS = &HFF0062 ' (DWORD) dest = WHITE
Private Sub Option1_Click()
Dim a As Long
CommonDialog1.ShowColor
a = BitBlt(Picture1.hDC, 0, 0, 300, 300, Picture16.hDC, 300, 300, BLACKNESS)
Picture1.Refresh
End SubPrivate Sub Option2_Click()
Dim b As Long
b = BitBlt(Picture2.hDC, 0, 0, 300, 300, Picture16.hDC, 300, 300, DSTINVERT)
Picture2.Refresh
End SubPrivate Sub Option3_Click()
Dim c As Long
c = BitBlt(Picture3.hDC, 0, 0, 300, 300, Picture4.hDC, 300, 300, MERGECOPY)
Picture3.Refresh
End SubPrivate Sub Option4_Click()
Dim d As Long
d = BitBlt(Picture4.hDC, 0, 0, 300, 300, Picture16.hDC, 300, 300, MERGEPAINT)
Picture4.Refresh
End Sub
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 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 LongPrivate Const BLACKNESS = &H42 ' (DWORD) dest = BLACK
Private Const DSTINVERT = &H550009 ' (DWORD) dest = (NOT dest)
Private Const MERGECOPY = &HC000CA ' (DWORD) dest = (source AND pattern)
Private Const MERGEPAINT = &HBB0226 ' (DWORD) dest = (NOT source) OR dest
Private Const NOTSRCCOPY = &H330008 ' (DWORD) dest = (NOT source)
Private Const NOTSRCERASE = &H1100A6 ' (DWORD) dest = (NOT src) AND (NOT dest)
Private Const PATCOPY = &HF00021 ' (DWORD) dest = pattern
Private Const PATINVERT = &H5A0049 ' (DWORD) dest = pattern XOR dest
Private Const PATPAINT = &HFB0A09 ' (DWORD) dest = DPSnoo
Private Const SRCAND = &H8800C6 ' (DWORD) dest = source AND dest
Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = source
Private Const SRCERASE = &H440328 ' (DWORD) dest = source AND (NOT dest )
Private Const SRCINVERT = &H660046 ' (DWORD) dest = source XOR dest
Private Const SRCPAINT = &HEE0086 ' (DWORD) dest = source OR dest
Private Const WHITENESS = &HFF0062 ' (DWORD) dest = WHITE
Private Sub Option1_Click()
Dim a As Long
CommonDialog1.ShowColor
a = BitBlt(Picture1.hDC, 0, 0, 300, 300, Picture16.hDC, 300, 300, BLACKNESS)
Picture1.Refresh
End SubPrivate Sub Option2_Click()
Dim b As Long
b = BitBlt(Picture2.hDC, 0, 0, 300, 300, Picture16.hDC, 300, 300, DSTINVERT)
Picture2.Refresh
End SubPrivate Sub Option3_Click()
Dim c As Long
c = BitBlt(Picture3.hDC, 0, 0, 300, 300, Picture4.hDC, 300, 300, MERGECOPY)
Picture3.Refresh
End SubPrivate Sub Option4_Click()
Dim d As Long
d = BitBlt(Picture4.hDC, 0, 0, 300, 300, Picture16.hDC, 300, 300, MERGEPAINT)
Picture4.Refresh
End Sub
解决方案 »
- VB如何在IIS中选中集成WINDOWS身份验证和启用父路径?
- 学vb67年,却不知道如何在菜单里加图标,烦死我了,救命啊!!!!!!!!!!
- vb开发实时曲线控件
- 100分求关于SQL的IMAGE字段打印问题
- 大家节日快乐!!!小弟有一个问题,请教
- 怎么用VB调用IE打开文档?调用完后再让程序继续运行?
- 请问怎么样验证在ASP中发送的邮件有没有送到目的地?
- 500分求一份关于工资管理系统的分析报告
- 请问高手,如何获得一个用户的使用权限(对数据库)?
- 怎么许多人不给答对了问题的人的分?
- 如何在word中屏蔽 复制,粘贴,拖动等动作?
- vb winsock 问题,急急急急急急急急急急急急急急,十万火急!!!!
含义
BLACKNESS
输出黑色
DSTINVERT
反转目的位图
MERGECOPY
用与操作把图案(Pattern)与源位图融合起来
MERGEPAINT
用或操作把反转的源位图与目的位图融合起来
NOTSRCCOPY
把源位图反转然后拷贝到目的地
NOTSRCERASE
用或操作融合源和目的位图,然后再反转
PATCOPY
把图案拷贝到目的位图中
PATINVERT
用异或操作把图案与目的位图相融合
PATPAINT
用或操作融合图案和反转的源位图,然后用或操作把结果与目的位图融合
SRCAND
用与操作融合源位图和目的位图
SRCCOPY
把源位图拷贝到目的位图
SRCERASE
先反转目的位图,再用与操作将其与源位图融合
SRCINVERT
用异或操作融合源位图和目的位图
SRCPAINT
用或操作融合源位图和目的位图
WHITENESS
输出白色
a = BitBlt(Picture1.hDC, 0, 0, 300, 300, Picture16.hDC, 300, 300, BLACKNESS)
b = BitBlt(Picture2.hDC, 0, 0, 300, 300, Picture16.hDC, 300, 300, DSTINVERT)
c = BitBlt(Picture3.hDC, 0, 0, 300, 300, Picture4.hDC, 300, 300, MERGECOPY)
d = BitBlt(Picture4.hDC, 0, 0, 300, 300, Picture16.hDC, 300, 300, MERGEPAINT) 虽然没看到其他代码,但是画图所用的源图片应该是一样的吧!
你做 MERGECOPY 时 Picture4 中有图像吗?