Convert Windows System Cloours to RGB Colours

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Phil Stanton

    Convert Windows System Cloours to RGB Colours

    When designing a new form or report, the Default ForeColor is often
    something like -2147483640 which is the colour of Windows text (possibly
    black) and the default backColor is -2147483643 (possibly white)

    Can anyone tell me how to convert these colours to either RGB colours or the
    Long number used by Access. Black is 0 and White is 16777215



    gives further information

    Thanks

    Phil


  • Stephen Lebans

    #2
    Re: Convert Windows System Cloours to RGB Colours

    For actual VB code to perform the conversion and a bit of an explanation
    on the various ways colors are represented in windows see:



    For more detail here is a previous post of mine on this subject.
    For a detailed online Color FAQ see:




    For information on how windows represents colors see:

    ors_87zn.asp

    In case you do not have access to MSDN:

    Working with Color
    See Also

    Visual Basic uses a consistent system for all color properties and
    graphics methods. A color is represented by a Long integer, and this
    value has the same meaning in all contexts that specify a color.

    Specifying Colors at Run Time
    There are four ways to specify a color value at run time:

    Use the RGB function.


    Use the QBColor function to choose one of 16 Microsoft QuickBasic®
    colors.


    Use one of the intrinsic constants listed in the Object Browser.


    Enter a color value directly.
    This section discusses how to use the RGB and QBColor functions as
    simple ways to specify color. See "Using Color Properties" later in this
    chapter for information on using constants to define color or directly
    entering color values.

    Using the RGB Function
    You can use the RGB function to specify any color.

    To use the RGB function to specify a color

    Assign each of the three primary colors (red, green, and blue) a number
    from 0 to 255, with 0 denoting the least intensity and 255 the greatest.


    Give these three numbers as input to the RGB function, using the order
    red-green-blue.


    Assign the result to the color property or color argument.
    Every visible color can be produced by combining one or more of the
    three primary colors. For example:

    ' Set background to green.
    Form1.BackColor = RGB(0, 128, 0)
    ' Set background to yellow.
    Form2.BackColor = RGB(255, 255, 0)
    ' Set point to dark blue.
    PSet (100, 100), RGB(0, 0, 64)

    For More Information For information on the RGB function, see "RGB
    Function" in the Language Reference.



    Using Color Properties
    See Also

    Many of the controls in Visual Basic have properties that determine the
    colors used to display the control. Keep in mind that some of these
    properties also apply to controls that aren't graphical. The following
    table describes the color properties.

    Property Description
    BackColor Sets the background color of the form or control used for
    drawing. If you change the BackColor property after using graphics
    methods to draw, the graphics are erased by the new background color.
    ForeColor Sets the color used by graphics methods to create text or
    graphics in a form or control. Changing ForeColor does not affect text
    or graphics already created.
    BorderColor Sets the color of the border of a shape control.
    FillColor Sets the color that fills circles created with the Circle
    method and boxes created with the Line method.


    For More Information For detailed descriptions of these color
    properties, see "BackColor Property," "ForeColor Property," "BorderColo r
    Property," and "FillColor Property" in the Language Reference.

    Defining Colors
    The color properties can use any of several methods to define the color
    value. The RGB function described in "Working with Color" is one way to
    define colors. This section discusses two more ways to define colors:

    Using defined constants


    Using direct color settings
    Using Defined Constants
    You don't need to understand how color values are generated if you use
    the intrinsic constants listed in the Object Browser. In addition,
    intrinsic constants do not need to be declared. For example, you can use
    the constant vbRed whenever you want to specify red as a color argument
    or color property setting:

    BackColor = vbRed

    Using Direct Color Settings
    Using the RGB function or the intrinsic constants to define color are in
    direct methods. They are indirect because Visual Basic interprets them
    into the single approach it uses to represent color. If you understand
    how colors are represented in Visual Basic, you can assign numbers to
    color properties and arguments that specify color directly. In most
    cases, it's much easier to enter these numbers in hexadecimal.

    The valid range for a normal RGB color is 0 to 16,777,215 (&HFFFFFF&).
    Each color setting (property or argument) is a 4-byte integer. The high
    byte of a number in this range equals 0. The lower 3 bytes, from least
    to most significant byte, determine the amount of red, green, and blue,
    respectively. The red, green, and blue components are each represented
    by a number between 0 and 255 (&HFF).

    Consequently, you can specify a color as a hexadecimal number using this
    syntax:

    &HBBGGRR&

    The BB specifies the amount of blue, GG the amount of green, and RR the
    amount of red. Each of these fragments is a two-digit hexadecimal number
    from 00 to FF. The median value is 80. Thus, the following number
    specifies gray, which has the median amount of all three colors:

    &H808080&

    Setting the most significant bit to 1 changes the meaning of the color
    value: It no longer represents an RGB color, but an environment-wide
    color specified through the Windows Control Panel. The values that
    correspond to these system-wide colors range from &H80000000 to
    &H80000015.

    Note Although you can specify over 16 million different colors, not
    all systems are capable of displaying them accurately. For more
    information on how Windows represents colors, see "Working with 256
    Colors" later in this chapter.

    Using System Colors
    When setting the colors of controls or forms in your application, you
    can use colors specified by the operating system instead of specific
    color values. If you specify system colors, when users of your
    application change the values of system colors on their computers, your
    application automatically reflects the user-specified color values.

    Each system color has both a defined constant and a direct color
    setting. The high byte of direct color settings for system colors
    differs from those of normal RGB colors. For RGB colors, the high byte
    equals 0 whereas for system colors the high byte equals 8. The rest of
    the number refers to a particular system color. For example, the
    hexadecimal number used to represent the color of an active window
    caption is &H80000002&.

    When you select color properties at design time with the Properties
    window, selecting the System tab lets you choose system settings, which
    are automatically converted into the hexadecimal value. You can also
    find the defined constants for system colors in the Object Browser.



    Constant Value Description
    vbScrollBars 0x80000000 Scroll bar color
    vbDesktop 0x80000001 Desktop color
    vbActiveTitleBa r 0x80000002 Color of the title bar for the active window
    vbInactiveTitle Bar 0x80000003 Color of the title bar for the inactive
    window
    vbMenuBar 0x80000004 Menu background color
    vbWindowBackgro und 0x80000005 Window background color
    vbWindowFrame 0x80000006 Window frame color
    vbMenuText 0x80000007 Color of text on menus
    vbWindowText 0x80000008 Color of text in windows
    vbTitleBarText 0x80000009 Color of text in caption, size box, and scroll
    arrow
    vbActiveBorder 0x8000000A Border color of active window
    vbInactiveBorde r 0x8000000B Border color of inactive window
    vbApplicationWo rkspace 0x8000000C Background color of multiple-document
    interface (MDI) applications
    vbHighlight 0x8000000D Background color of items selected in a control
    vbHighlightText 0x8000000E Text color of items selected in a control
    vbButtonFace 0x8000000F Color of shading on the face of command buttons
    vbButtonShadow 0x80000010 Color of shading on the edge of command
    buttons
    vbGrayText 0x80000011 Grayed (disabled) text
    vbButtonText 0x80000012 Text color on push buttons
    vbInactiveCapti onText 0x80000013 Color of text in an inactive caption
    vb3DHighlight 0x80000014 Highlight color for 3-D display elements
    vb3DDKShadow 0x80000015 Darkest shadow color for 3-D display elements
    vb3DLight 0x80000016 Second lightest 3-D color after vb3DHighlight
    vbInfoText 0x80000017 Color of text in ToolTips
    vbInfoBackgroun d 0x80000018 Background color of ToolTips




    --

    HTH
    Stephen Lebans

    Access Code, Tips and Tricks
    Please respond only to the newsgroups so everyone can benefit.


    "Phil Stanton" <discussion@sta ntonfamily.co.u k> wrote in message
    news:41a52587$0 $108$65c69314@m ercury.nildram. net...[color=blue]
    > When designing a new form or report, the Default ForeColor is often
    > something like -2147483640 which is the colour of Windows text[/color]
    (possibly[color=blue]
    > black) and the default backColor is -2147483643 (possibly white)
    >
    > Can anyone tell me how to convert these colours to either RGB colours[/color]
    or the[color=blue]
    > Long number used by Access. Black is 0 and White is 16777215
    >
    >[/color]

    33&CTT=8&Origin =EC011081751033[color=blue]
    >
    > gives further information
    >
    > Thanks
    >
    > Phil
    >
    >[/color]

    Comment

    • Phil Stanton

      #3
      Re: Convert Windows System Cloours to RGB Colours

      As ever, Stephen. Most helpful. Problem solved

      Thanks

      Phil


      "Stephen Lebans" <ForEmailGotoMy .WebSite.-WWWdotlebansdot com@linvalid.co m>
      wrote in message news:66apd.1848 80$Np3.7494157@ ursa-nb00s0.nbnet.nb .ca...[color=blue]
      > For actual VB code to perform the conversion and a bit of an explanation
      > on the various ways colors are represented in windows see:
      > http://vbnet.mvps.org/index.html?cod...slatecolor.htm
      >
      >
      > For more detail here is a previous post of mine on this subject.
      > For a detailed online Color FAQ see:
      > http://www.inforamp.net/~poynton/Poy...lSpecifically:
      > http://www.inforamp.net/~poynton/ColorFAQ.html
      >
      >
      > For information on how windows represents colors see:
      > http://msdn.microsoft.com/library/de.../en-us/gdi/col
      > ors_87zn.asp
      >
      > In case you do not have access to MSDN:
      >
      > Working with Color
      > See Also
      >
      > Visual Basic uses a consistent system for all color properties and
      > graphics methods. A color is represented by a Long integer, and this
      > value has the same meaning in all contexts that specify a color.
      >
      > Specifying Colors at Run Time
      > There are four ways to specify a color value at run time:
      >
      > Use the RGB function.
      >
      >
      > Use the QBColor function to choose one of 16 Microsoft QuickBasic®
      > colors.
      >
      >
      > Use one of the intrinsic constants listed in the Object Browser.
      >
      >
      > Enter a color value directly.
      > This section discusses how to use the RGB and QBColor functions as
      > simple ways to specify color. See "Using Color Properties" later in this
      > chapter for information on using constants to define color or directly
      > entering color values.
      >
      > Using the RGB Function
      > You can use the RGB function to specify any color.
      >
      > To use the RGB function to specify a color
      >
      > Assign each of the three primary colors (red, green, and blue) a number
      > from 0 to 255, with 0 denoting the least intensity and 255 the greatest.
      >
      >
      > Give these three numbers as input to the RGB function, using the order
      > red-green-blue.
      >
      >
      > Assign the result to the color property or color argument.
      > Every visible color can be produced by combining one or more of the
      > three primary colors. For example:
      >
      > ' Set background to green.
      > Form1.BackColor = RGB(0, 128, 0)
      > ' Set background to yellow.
      > Form2.BackColor = RGB(255, 255, 0)
      > ' Set point to dark blue.
      > PSet (100, 100), RGB(0, 0, 64)
      >
      > For More Information For information on the RGB function, see "RGB
      > Function" in the Language Reference.
      >
      >
      >
      > Using Color Properties
      > See Also
      >
      > Many of the controls in Visual Basic have properties that determine the
      > colors used to display the control. Keep in mind that some of these
      > properties also apply to controls that aren't graphical. The following
      > table describes the color properties.
      >
      > Property Description
      > BackColor Sets the background color of the form or control used for
      > drawing. If you change the BackColor property after using graphics
      > methods to draw, the graphics are erased by the new background color.
      > ForeColor Sets the color used by graphics methods to create text or
      > graphics in a form or control. Changing ForeColor does not affect text
      > or graphics already created.
      > BorderColor Sets the color of the border of a shape control.
      > FillColor Sets the color that fills circles created with the Circle
      > method and boxes created with the Line method.
      >
      >
      > For More Information For detailed descriptions of these color
      > properties, see "BackColor Property," "ForeColor Property," "BorderColo r
      > Property," and "FillColor Property" in the Language Reference.
      >
      > Defining Colors
      > The color properties can use any of several methods to define the color
      > value. The RGB function described in "Working with Color" is one way to
      > define colors. This section discusses two more ways to define colors:
      >
      > Using defined constants
      >
      >
      > Using direct color settings
      > Using Defined Constants
      > You don't need to understand how color values are generated if you use
      > the intrinsic constants listed in the Object Browser. In addition,
      > intrinsic constants do not need to be declared. For example, you can use
      > the constant vbRed whenever you want to specify red as a color argument
      > or color property setting:
      >
      > BackColor = vbRed
      >
      > Using Direct Color Settings
      > Using the RGB function or the intrinsic constants to define color are in
      > direct methods. They are indirect because Visual Basic interprets them
      > into the single approach it uses to represent color. If you understand
      > how colors are represented in Visual Basic, you can assign numbers to
      > color properties and arguments that specify color directly. In most
      > cases, it's much easier to enter these numbers in hexadecimal.
      >
      > The valid range for a normal RGB color is 0 to 16,777,215 (&HFFFFFF&).
      > Each color setting (property or argument) is a 4-byte integer. The high
      > byte of a number in this range equals 0. The lower 3 bytes, from least
      > to most significant byte, determine the amount of red, green, and blue,
      > respectively. The red, green, and blue components are each represented
      > by a number between 0 and 255 (&HFF).
      >
      > Consequently, you can specify a color as a hexadecimal number using this
      > syntax:
      >
      > &HBBGGRR&
      >
      > The BB specifies the amount of blue, GG the amount of green, and RR the
      > amount of red. Each of these fragments is a two-digit hexadecimal number
      > from 00 to FF. The median value is 80. Thus, the following number
      > specifies gray, which has the median amount of all three colors:
      >
      > &H808080&
      >
      > Setting the most significant bit to 1 changes the meaning of the color
      > value: It no longer represents an RGB color, but an environment-wide
      > color specified through the Windows Control Panel. The values that
      > correspond to these system-wide colors range from &H80000000 to
      > &H80000015.
      >
      > Note Although you can specify over 16 million different colors, not
      > all systems are capable of displaying them accurately. For more
      > information on how Windows represents colors, see "Working with 256
      > Colors" later in this chapter.
      >
      > Using System Colors
      > When setting the colors of controls or forms in your application, you
      > can use colors specified by the operating system instead of specific
      > color values. If you specify system colors, when users of your
      > application change the values of system colors on their computers, your
      > application automatically reflects the user-specified color values.
      >
      > Each system color has both a defined constant and a direct color
      > setting. The high byte of direct color settings for system colors
      > differs from those of normal RGB colors. For RGB colors, the high byte
      > equals 0 whereas for system colors the high byte equals 8. The rest of
      > the number refers to a particular system color. For example, the
      > hexadecimal number used to represent the color of an active window
      > caption is &H80000002&.
      >
      > When you select color properties at design time with the Properties
      > window, selecting the System tab lets you choose system settings, which
      > are automatically converted into the hexadecimal value. You can also
      > find the defined constants for system colors in the Object Browser.
      >
      >
      >
      > Constant Value Description
      > vbScrollBars 0x80000000 Scroll bar color
      > vbDesktop 0x80000001 Desktop color
      > vbActiveTitleBa r 0x80000002 Color of the title bar for the active window
      > vbInactiveTitle Bar 0x80000003 Color of the title bar for the inactive
      > window
      > vbMenuBar 0x80000004 Menu background color
      > vbWindowBackgro und 0x80000005 Window background color
      > vbWindowFrame 0x80000006 Window frame color
      > vbMenuText 0x80000007 Color of text on menus
      > vbWindowText 0x80000008 Color of text in windows
      > vbTitleBarText 0x80000009 Color of text in caption, size box, and scroll
      > arrow
      > vbActiveBorder 0x8000000A Border color of active window
      > vbInactiveBorde r 0x8000000B Border color of inactive window
      > vbApplicationWo rkspace 0x8000000C Background color of multiple-document
      > interface (MDI) applications
      > vbHighlight 0x8000000D Background color of items selected in a control
      > vbHighlightText 0x8000000E Text color of items selected in a control
      > vbButtonFace 0x8000000F Color of shading on the face of command buttons
      > vbButtonShadow 0x80000010 Color of shading on the edge of command
      > buttons
      > vbGrayText 0x80000011 Grayed (disabled) text
      > vbButtonText 0x80000012 Text color on push buttons
      > vbInactiveCapti onText 0x80000013 Color of text in an inactive caption
      > vb3DHighlight 0x80000014 Highlight color for 3-D display elements
      > vb3DDKShadow 0x80000015 Darkest shadow color for 3-D display elements
      > vb3DLight 0x80000016 Second lightest 3-D color after vb3DHighlight
      > vbInfoText 0x80000017 Color of text in ToolTips
      > vbInfoBackgroun d 0x80000018 Background color of ToolTips
      >
      >
      >
      >
      > --
      >
      > HTH
      > Stephen Lebans
      > http://www.lebans.com
      > Access Code, Tips and Tricks
      > Please respond only to the newsgroups so everyone can benefit.
      >
      >
      > "Phil Stanton" <discussion@sta ntonfamily.co.u k> wrote in message
      > news:41a52587$0 $108$65c69314@m ercury.nildram. net...[color=green]
      >> When designing a new form or report, the Default ForeColor is often
      >> something like -2147483640 which is the colour of Windows text[/color]
      > (possibly[color=green]
      >> black) and the default backColor is -2147483643 (possibly white)
      >>
      >> Can anyone tell me how to convert these colours to either RGB colours[/color]
      > or the[color=green]
      >> Long number used by Access. Black is 0 and White is 16777215
      >>
      >>[/color]
      > http://office.microsoft.com/assistan...D=HP0518788810
      > 33&CTT=8&Origin =EC011081751033[color=green]
      >>
      >> gives further information
      >>
      >> Thanks
      >>
      >> Phil
      >>
      >>[/color]
      >[/color]


      Comment

      Working...