none
CreatePalette RRS feed

  • 问题

  • 我现在有100种颜色是已知的,怎么用CreatePalette创建调色板,现在很奇怪,我用CreatePalette创建调色板后用GetNearestPaletteIndex索引颜色后总是一个值。都不知道怎么弄。。。知道创建调色板的高手们帮我实现以下。。。真的想不起来。。。谢谢。。。6.0代码。。。

     

     

    CreatePalette这个函数 。。。但是我弄了半天还没弄出来。。。Dim x(450) As PALETTEENTRY
    For i = LBound(C_Color) To UBound(C_Color) - 1
    x(i).peRed = C_Color(i).r
    x(i).peGreen = C_Color(i).b
    x(i).peBlue = C_Color(i).b
    Next
    LogPal.palPalEntry = x
    'Create the palette
    hPal = CreatePalette(LogPal)
    'PicAlde.BackColor = GetNearestColor(hPal, RGB(200, 200, 200))
    main.PicAlde.BackColor = GetNearestPaletteIndex(hPal, RGB(255, 255, 255))
    还有Public Type PALETTEENTRY
    peRed As Byte
    peGreen As Byte
    peBlue As Byte
    peFlags As Byte
    End Type
    Public Type LOGPALETTE
    palVersion As Integer
    palNumEntries As Integer
    palPalEntry(450) As PALETTEENTRY
    End Type
    但是结果很不理想。要么是红色的要么是没反应。。。这是奇怪了。。。麻烦大家帮我看一下。。。谢谢。。。


    muradil
    2010年3月30日 8:36

答案