473,501 Members | 1,770 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

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

http://office.microsoft.com/assistan...EC011081751033

gives further information

Thanks

Phil
Nov 13 '05 #1
2 16154
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," "BorderColor
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
vbActiveTitleBar 0x80000002 Color of the title bar for the active window
vbInactiveTitleBar 0x80000003 Color of the title bar for the inactive
window
vbMenuBar 0x80000004 Menu background color
vbWindowBackground 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
vbInactiveBorder 0x8000000B Border color of inactive window
vbApplicationWorkspace 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
vbInactiveCaptionText 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
vbInfoBackground 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" <di********@stantonfamily.co.uk> wrote in message
news:41*********************@mercury.nildram.net.. .
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

http://office.microsoft.com/assistan...D=HP0518788810
33&CTT=8&Origin=EC011081751033
gives further information

Thanks

Phil


Nov 13 '05 #2
As ever, Stephen. Most helpful. Problem solved

Thanks

Phil
"Stephen Lebans" <Fo****************************************@linval id.com>
wrote in message news:66**********************@ursa-nb00s0.nbnet.nb.ca...
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," "BorderColor
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
vbActiveTitleBar 0x80000002 Color of the title bar for the active window
vbInactiveTitleBar 0x80000003 Color of the title bar for the inactive
window
vbMenuBar 0x80000004 Menu background color
vbWindowBackground 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
vbInactiveBorder 0x8000000B Border color of inactive window
vbApplicationWorkspace 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
vbInactiveCaptionText 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
vbInfoBackground 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" <di********@stantonfamily.co.uk> wrote in message
news:41*********************@mercury.nildram.net.. .
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

http://office.microsoft.com/assistan...D=HP0518788810
33&CTT=8&Origin=EC011081751033

gives further information

Thanks

Phil

Nov 13 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
10041
by: Jim | last post by:
I have a 24-bit colour BMP which I need to convert to 16 colours, the palette is correct and converts fine via Paint manually, how can I talk to paint or programmatically convert this bitmap. ...
6
5217
by: Louise | last post by:
Hi I have written an HTML pages which does not have any colour specifying tags as far I know. When I view this in an Microsoft internet explorer browser it appears with a white background and...
4
3940
by: Els | last post by:
Hi, I would like an opinion on the following: I have a page which is made up of background-images with transparent linked images in front of it, which on hover show text in CSS popups. Due to...
11
7559
by: Altramagnus | last post by:
I have a complicated Region object, which I need to draw the outline, but not fill How can I convert the Region object to GraphicsPath object? or How can I draw the outline of the Region object?
8
2235
by: Doug Laidlaw | last post by:
I tried to grab an image from a Web page the other day. It turned out that the page was made up of three horizontal bands, and part of the image was in each. One band was a JPEG, another was a...
2
11121
by: James dean | last post by:
Do i have to create an index pallette. How do i do that?. Or, Can i not just make an ordinary 8pp pixel format without this indexed problem...... *** Sent via Developersdex...
14
7936
by: Me | last post by:
Hi all I am getting a really bizzare error on when I convert a string into a datetime: The code is : DateTime dt1 = Convert.ToDateTime("10 Sep 2005"); Console.WriteLine(dt1.Year);
1
1316
by: leenadiwan | last post by:
Hi All!! We are doing a POC currently wherein we need to get the System colours in the JSP file. Example: If user has set a specific theme, we want to be able to get the theme details through...
2
2378
by: Galil | last post by:
I have a subroutine I need to convert from vb.net 2005 to visual C++ ( .net 2005) The function only allows specific characters to be typed into a textbox. the backspace and 0 -9. Private Sub...
0
7050
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
7277
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
6940
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
7425
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
5528
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
4959
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
3128
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
1471
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
0
335
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.