zoukankan      html  css  js  c++  java
  • GDI+_VB6_ARGB

    在写一个用GDI+代替VB的Line函数的方法时,遇到了一个问题。

    GdipCreateSolidFill

    参数
    color
    [in]ARGB颜色,指定此实体画笔的初始颜色。
    brush
    [out]指向接收到新创建的SolidBrush对象的指针的变量的指针。
    返回值
    如果函数成功,则返回Ok,它是状态枚举的一个元素。
    如果函数失败,它返回状态枚举的其他元素之一。 

    在得到ARGB值这一点出现了问题。

    我当时以为很简单的HEX(ARGB)就能解决结果我就错了。

    查阅了很多时间,才知道原来要分开来转换。

    1 ARGB有四个值:
    2 
    3 透明度 红色值 绿色值 蓝色值
    4 
    5 于是我做了一个函数来解决:
    Public Function ARGB(alpha As Integer, red As Integer, green As Integer, blue As Integer) As Long
    'ARGB(透明度,红色,绿色,蓝色)
        If alpha > 255 Or red > 255 Or green > 255 Or blue > 255 Then
        '大于255 返回0
        ARGB = 0: Exit Function
        End If
        Dim S_a As String, S_r As String, S_g As String, S_b As String, S_16 As String
        S_a = Hex(alpha): S_r = Hex(red): S_g = Hex(green): S_b = Hex(blue)
    '由于十六进制ARGB是以两位数为一个值的。
    '当字符个数为1时前面加0补充
        If Len(S_a) < 2 Then S_a = "0" & S_a
        If Len(S_r) < 2 Then S_r = "0" & S_r
        If Len(S_g) < 2 Then S_g = "0" & S_g
        If Len(S_b) < 2 Then S_b = "0" & S_b
        S_16 = "&H" & S_a & S_r & S_g & S_b
    'ARGB=&H FFFF FFFF
    ARGB = Val(S_16)
    End Function
    
    

     

    虽然很简单的一个东西,但是百度上对ARGB的介绍极少,导致浪费了我不少的时间,所以建一篇帖子谨记。

     

      

     
  • 相关阅读:
    SAP OPEN UI5 Step 8: Translatable Texts
    SAP OPEN UI5 Step7 JSON Model
    SAP OPEN UI5 Step6 Modules
    SAP OPEN UI5 Step5 Controllers
    SAP OPEN UI5 Step4 Xml View
    SAP OPEN UI5 Step3 Controls
    SAP OPEN UI5 Step2 Bootstrap
    SAP OPEN UI5 Step1 环境安装和hello world
    2021php最新composer的使用攻略
    Php使用gzdeflate和ZLIB_ENCODING_DEFLATE结果gzinflate报data error
  • 原文地址:https://www.cnblogs.com/lingqingxue/p/10362639.html
Copyright © 2011-2022 走看看