Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Oct 16, 1998

Use VB System Color Constants in API Calls

Visual Basic includes constants, such as vbActiveTitleBar and vbButtonFace, for Windows system colors, which the user might change through the Control Panel. (In VB3, these constants are defined in the file CONSTANT.TXT.) When you assign one of these constants to a VB color property, Visual Basic automatically translates it to the actual color the user has chosen for that item. You cannot, however, use VB's system color constants directly with API functions, such as SetPixel, that expect a color as one of their parameters. VB's system color constants are the same as those defined by the Windows API, except that VB's constants have the high bit set. You can use this function to translate both VB and Windows system color constants into the corresponding RGB color value, suitable for use in API calls:

 ' 32-bit
Option Explicit
Declare Function GetSysColor Lib "User32" ( _
	ByVal nIndex As Long) As Long
Public Function SysColor2RGB(ByVal lColor As Long) As Long
	lColor = lColor And (Not &H80000000)
	SysColor2RGB = GetSysColor(lColor)
End Function

For 16-bit versions of VB, replace the GetSysColor declaration with this code:

 Declare Function GetSysColor Lib "User" ( _
	ByVal nIndex As Integer) As Long
Steve Cisco
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date