本帖最后由 系统消息 于 2022-5-26 19:07 编辑
提示一下,HIWORD和LOWORD最好不要用除法运算,这个遇到负数的时候会有一些问题的。最好的是用结构体来做拆分:
[Visual Basic] 纯文本查看 复制代码 Type DWord
LoWord As Integer
HiWord As Integer
End Type
Declare Function SplitDWord Lib "msvbvm60" Alias "#644"(ByVal DWord As Long) As DWord
Sub Test()
Dim dw As DWord
dw = SpliteDWord(&HA1B2C3D4)
?Hex$(dw.LoWord), Hex$(dw.HiWord) ' 输出:C3D4 A1B2
End Sub
同理,我们也可以用此方法来拆分RGBA颜色:
[Visual Basic] 纯文本查看 复制代码 Type RGBAColor
Red As Byte
Green As Byte
Blue As Byte
Alpha As Byte
End Type
Declare Function SplitRGBA Lib "msvbvm60" Alias "#644"(ByVal Color As ColorConstants) As RGBAColor
|