本帖最后由 系统消息 于 2022-5-26 19:07 编辑
提示一下,HIWORD和LOWORD最好不要用除法运算,这个遇到负数的时候会有一些问题的。最好的是用结构体来做拆分:
- 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颜色:
- 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
复制代码
|