Changes

Color Constants / Color Forms / Controls / Transparency VB6

8,273 bytes added, 19:33, 10 February 2008
/* All Possible Ways */
The following lines were added (+) and removed (-):
== VB / VBA Color Constants ===== Table 1 ===&nbsp;=== Table 2 ==={| width="624" border="1" cellspacing="1" bgcolor="#c0c0c0"| valign="middle" | '''System Colour Name'''| valign="middle" | '''Hex Value'''| valign="middle" | '''VB Constant'''|-| valign="middle" | Menu Text| valign="middle" | &H80000007&| valign="middle" | vbMenuText|-| valign="middle" | Scroll Bars| valign="middle" | &H80000000&| valign="middle" | vbScrollBars|-| valign="middle" | Window Background| valign="middle" | &H80000005&| valign="middle" | vbWindowBackground|-| valign="middle" | Window Frame| valign="middle" | &H80000006&| valign="middle" | vbWindowFrame|-| valign="middle" | Window Text| valign="middle" | &H80000008&| valign="middle" | vbWindowText|-| valign="middle" | Active Border| valign="middle" | &H8000000A&| valign="middle" | vbActiveBorder|-| valign="middle" | Active Title Bar| valign="middle" | &H80000002&| valign="middle" | vbActiveTitleBar|-| valign="middle" | Active Title Bar Text| valign="middle" | &H80000009&| valign="middle" | vbTitleBarText|-| valign="middle" | Application Workspace| valign="middle" | &H8000000C&| valign="middle" | vbApplicationWorkspace|-| valign="middle" | Button Face| valign="middle" | &H8000000F&| valign="middle" | <font color="black">vbButtonFace</font>|-| valign="middle" | <font color="black">Button Highlight</font>| valign="middle" | &H80000014&| valign="middle" | vb3DHighlight|-| valign="middle" | Button Shadow| valign="middle" | &H80000010&| valign="middle" | vb3DDKShadow|-| valign="middle" | Button Text| valign="middle" | &H80000012&| valign="middle" | vbButtonText|-| valign="middle" | Desktop| valign="middle" | &H80000001&| valign="middle" | vbDesktop|-| valign="middle" | Disabled Text| valign="middle" | &H80000011&| valign="middle" | vbGrayText|-| valign="middle" | Highlight| valign="middle" | &H8000000D&| valign="middle" | vbHighlight|-| valign="middle" | Highlighted Text| valign="middle" | &H8000000E&| valign="middle" | vbHighlightText|-| valign="middle" | Inactive Border| valign="middle" | &H8000000B&| valign="middle" | vbInactiveBorder|-| valign="middle" | Inactive Title Bar| valign="middle" | &H80000003&| valign="middle" | vbInactiveTitleBar|-| valign="middle" | Inactive Title Bar Text| valign="middle" | &H80000013&| valign="middle" | vbInactiveCaptionText|-| valign="middle" | Menu Bar| valign="middle" | &H80000004&| valign="middle" | vbMenuBar|}&nbsp;=== Table 3 ===The eight members of the VBA Color Constants class: <big>:* vbBlack:* vbWhite:* vbRed:* vbGreen:* vbBlue:* vbYellow :* vbMagenta:* vbCyan</big>&nbsp;=== Examples ===Example 1: txtCon(cnt).BackColor = vbHighlightTextExample 2: This is the same as "Button Highlight" txtCon(cnt).BackColor = vbHighlightText&nbsp;&nbsp;== Setting Form and Control Colors ==* Blue : Me.BackColor = RGB(0, 0, 255)  Me.BackColor = RGB(0, 0, 255)* Green: Me.BackColor = RGB(0, 255, 0)  Me.BackColor = RGB(0, 255, 0)* Red: Me.BackColor = RGB(255, 0, 0)  Me.BackColor = RGB(255, 0, 0)=== All Possible Ways ===1. In HEX, BLUE is first, Green, then Red, the reverse of RGB (actually BGR) is the default VB method  cmd(0).BackColor = &HFF&      ' Red  / &H0000FF&  cmd(1).BackColor = &HFF00&    ' Green / &H00FF00&  cmd(2).BackColor = &HFF0000  ' Blue  / &HFF0000&2. Decimal RGB value  cmd(0).BackColor = RGB(255, 0, 0)  cmd(1).BackColor = RGB(0, 255, 0)  cmd(2).BackColor = RGB(0, 0, 255)3. Using VB Color Constants  cmd(0).BackColor = vbRed  cmd(1).BackColor = vbGreen  cmd(2).BackColor = vbBlue=== Convert RGB Hex (like used in HTML) to VB Hex ===Code Sample: Public Function h2v(wHex As String) As Long  Dim strTmp As String  wHex = Trim("" & wHex)  If Len(wHex) = 7 Then    If Left(wHex, 1) = "#" Then wHex = Right(wHex, 6)  End If  If Len(wHex) = 6 Then    strTmp = "&H" & Right(wHex, 2) & Mid(wHex, 3, 2) & Left(wHex, 2) & "&"  Else    strTmp = "&H000000&"  End If  h2v = Val(strTmp)  Debug.Print h2v End Function&nbsp;&nbsp;== Transparency ===== Entire Form and all controls ===  <nowiki>Option Explicit</nowiki>  <nowiki></nowiki>  <nowiki>Private Const GWL_EXSTYLE = (-20)</nowiki>  <nowiki>Private Const WS_EX_LAYERED = &H80000</nowiki>  <nowiki>Private Const LWA_ALPHA = &H2</nowiki>  <nowiki></nowiki>  <nowiki>Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long</nowiki>  <nowiki>Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long</nowiki>  <nowiki>Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long</nowiki>  <nowiki></nowiki>  <nowiki>Private Sub Form_Load()</nowiki>  <nowiki>  TranslucentForm Me, 255  'Make form 0% translucent</nowiki>  <nowiki>End Sub</nowiki>  <nowiki></nowiki>  <nowiki>Private Sub Slider1_Scroll()</nowiki>  <nowiki>  TranslucentForm Me, Slider1.Value</nowiki>  <nowiki>End Sub</nowiki>  <nowiki></nowiki>  <nowiki>Public Function TranslucentForm(frm As Form, TranslucenceLevel As Byte) As Boolean</nowiki>  <nowiki>  SetWindowLong frm.hWnd, GWL_EXSTYLE, WS_EX_LAYERED</nowiki>  <nowiki>  SetLayeredWindowAttributes frm.hWnd, 0, TranslucenceLevel, LWA_ALPHA</nowiki>  <nowiki>  TranslucentForm = Err.LastDllError = 0</nowiki>  <nowiki>End Function</nowiki>=== By Color + Hollow Form ===  <nowiki>Option Explicit</nowiki>  <nowiki></nowiki>  <nowiki>Public Const LWA_COLORKEY = 1</nowiki>  <nowiki>Public Const LWA_ALPHA = 2</nowiki>  <nowiki>Public Const LWA_BOTH = 3</nowiki>  <nowiki>Public Const WS_EX_LAYERED = &H80000</nowiki>  <nowiki>Public Const GWL_EXSTYLE = -20</nowiki>  <nowiki>Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal bXColor As Long, ByVal x As Byte, ByVal a</nowiki>  <nowiki>lpha As Long) As Boolean</nowiki>  <nowiki>Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong</nowiki>  <nowiki> As Long) As Long</nowiki>  <nowiki>Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long</nowiki>  <nowiki>Public g_nTransparency As Integer</nowiki>  <nowiki>Public bXColor As Long</nowiki>  <nowiki>Public flag As Byte</nowiki>  <nowiki></nowiki>  <nowiki></nowiki>  <nowiki></nowiki>  <nowiki>Option Explicit</nowiki>  <nowiki></nowiki>  <nowiki>Private Sub cmdExit_Click()</nowiki>  <nowiki>  Unload Me</nowiki>  <nowiki>End Sub</nowiki>  <nowiki></nowiki>  <nowiki>Private Sub Form_Load()</nowiki>  <nowiki>  initFormControls</nowiki>  <nowiki>  initTransParency</nowiki>  <nowiki>End Sub</nowiki>  <nowiki></nowiki>  <nowiki>Private Sub initFormControls()</nowiki>  <nowiki>  Me.Width = Screen.Width: Me.Height = Screen.Height: Me.Top = 0: Me.Left = 0</nowiki>  <nowiki>  cmdExit.Left = Screen.Width - 800: cmdExit.Top = 200</nowiki>  <nowiki>End Sub</nowiki>  <nowiki></nowiki>  <nowiki>Private Sub initTransParency()</nowiki>  <nowiki>  bXColor = RGB(1, 2, 3)</nowiki>  <nowiki>  Me.BackColor = bXColor</nowiki>  <nowiki>  g_nTransparency = 150</nowiki>  <nowiki>  flag = 0 Or LWA_COLORKEY</nowiki>  <nowiki>  SetTranslucent Me.hwnd, bXColor, g_nTransparency, flag</nowiki>  <nowiki>End Sub</nowiki>  <nowiki>Option Explicit</nowiki>  <nowiki></nowiki>  <nowiki>Sub SetTranslucent(ThehWnd As Long, bXColor As Long, nTrans As Integer, flag As Byte)</nowiki>  <nowiki>    Dim attrib As Long</nowiki>  <nowiki>    On Error GoTo ErrorRtn</nowiki>  <nowiki>    attrib = GetWindowLong(ThehWnd, GWL_EXSTYLE)</nowiki>  <nowiki>    SetWindowLong ThehWnd, GWL_EXSTYLE, attrib Or WS_EX_LAYERED</nowiki>  <nowiki>    SetLayeredWindowAttributes ThehWnd, bXColor, nTrans, flag</nowiki>  <nowiki>    Exit Sub</nowiki>  <nowiki>ErrorRtn:</nowiki>  <nowiki>    MsgBox Err.Description & " Source : " & Err.Source</nowiki>  <nowiki>End Sub</nowiki>  <nowiki></nowiki> 
Bureaucrat, administrator
16,192
edits