vb中表示颜色的方法好象有很多,具体都怎么表示啊?
比如:我想表示一个增强色16位的颜色,或者表示一个真彩色32位的颜色,都怎么表示啊?
在编程中怎么控制?

解决方案 »

  1.   

    看看
    在VB中动态改变屏幕分辨率及颜色 
     
    定义private declare function lstrcpy _
    lib "kernel32" alias "lstrcpya" _
    (lpstring1 as any, lpstring2 as any) _
    as long
    const cchdevicename = 32
    const cchformname = 32private type devmode
    dmdevicename as string * cchdevicename
    dmspecversion as integer
    dmdriverversion as integer
    dmsize as integer
    dmdriverextra as integer
    dmfields as long
    dmorientation as integer
    dmpapersize as integer
    dmpaperlength as integer
    dmpaperwidth as integer
    dmscale as integer
    dmcopies as integer
    dmdefaultsource as integer
    dmprintquality as integer
    dmcolor as integer
    dmduplex as integer
    dmyresolution as integer
    dmttoption as integer
    dmcollate as integer
    dmformname as string * cchformname
    dmunusedpadding as integer
    dmbitsperpel as integer
    dmpelswidth as long
    dmpelsheight as long
    dmdisplayflags as long
    dmdisplayfrequency as long
    end type
    private declare function _
    changedisplaysettings lib _
    "user32" alias "changedisplaysettingsa" (_
    byval lpdevmode as long, _
    byval dwflags as long) as long
    函 数'vb man 2001
    'url: http://goodvbman.yeah.net 
    'e-mail: [email protected] function setdisplaymode(width as _
    integer,height as integer, color as _
    integer) as long
    const dm_pelswidth = &h80000
    const dm_pelsheight = &h100000
    const dm_bitsperpel = &h40000
    dim newdevmode as devmode
    dim pdevmode as long
    with newdevmode
    .dmsize = 122
    if color = -1 then
    .dmfields = dm_pelswidth or dm_pelsheight
    else
    .dmfields = dm_pelswidth or _
    dm_pelsheight or dm_bitsperpel
    end if
    .dmpelswidth = width
    .dmpelsheight = height
     
    if color <> -1 then
    .dmbitsperpel = color
    end if
    end with
    pdevmode = lstrcpy(newdevmode, newdevmode)
    setdisplaymode = changedisplaysettings(pdevmode, 0)
    end function
    例子调用:改变为 640x480x24位:i = setdisplaymode(640, 480, 24)如果成功返回 0  
      

  2.   

    16位
    BBBBBGGGGGGRRRRR
    C=B*2^11+G*2^5+R24位BBBBBBBBGGGGGGGGRRRRRRRR
    C=B*2^16+G*2^8+R32位
    AAAAAAAABBBBBBBBGGGGGGGGRRRRRRRR
    C=A*2^24+B*2^16+G*2^8+R
    (0=<A<100)