November 25, 2020, 05:27:47 AM

Author Topic: [bb] GetSystemColor() by sswift [ 1+ years ago ]  (Read 596 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
[bb] GetSystemColor() by sswift [ 1+ years ago ]
« on: June 29, 2017, 12:28:38 AM »
Title : GetSystemColor()
Author : sswift
Posted : 1+ years ago

Description : Uses windows GDI functions to tell you what color different interface elements in windows are.

Code :
Code: BlitzBasic
  1. ; -----------------------------------------------------------------------------------------------------------------------------------
  2. ; To use these functions, add the following to 'User32.decls' in your userlib folder:
  3. ;
  4. ;       .lib "User32.dll"
  5. ;       GetSysColor%(Color%):"GetSysColor"
  6. ;
  7. ; Example:
  8. ;
  9. ;       R = GetSysColorR(COLOR_MENU)
  10. ; -----------------------------------------------------------------------------------------------------------------------------------
  11.  
  12.  
  13. Const COLOR_SCROLLBAR                           = 0             ; Scroll bar gray area.
  14. Const COLOR_BACKGROUND                          = 1             ; Desktop.
  15. Const COLOR_DESKTOP                                     = 1
  16. Const COLOR_ACTIVECAPTION                       = 2             ; Active window title bar.
  17.                                                                                         ; Specifies the left side color in the color gradient of an active window's title bar
  18.                                                                                         ; if the gradient effect is enabled.  (Except Windows NT and Windows 95)
  19. Const COLOR_INACTIVECAPTION                     = 3             ; Inactive window caption.
  20.                                                                                         ; Specifies the left side color in the color gradient of an inactive window's
  21.                                                                                         ; title bar if the gradient effect is enabled.
  22.                                                                                         ; Windows NT and Windows 95:  This remark does not apply.
  23. Const COLOR_MENU                                        = 4             ; Menu background.
  24. Const COLOR_WINDOW                                      = 5             ; Window background.
  25. Const COLOR_WINDOWFRAME                         = 6             ; Window frame.
  26. Const COLOR_MENUTEXT                            = 7             ; Text in menus.
  27. Const COLOR_WINDOWTEXT                          = 8             ; Text in windows.
  28. Const COLOR_CAPTIONTEXT                         = 9             ; Text in caption, size box, And scroll bar arrow box.
  29. Const COLOR_ACTIVEBORDER                        = 10    ; Active window border.
  30. Const COLOR_INACTIVEBORDER                      = 11    ; Inactive window border.
  31. Const COLOR_APPWORKSPACE                        = 12    ; Background color of multiple document interface (MDI) applications.
  32. Const COLOR_HIGHLIGHT                           = 13    ; Item(s) selected in a control.
  33. Const COLOR_HIGHLIGHTTEXT                       = 14    ; Text of item(s) selected in a control.
  34. Const COLOR_3DFACE                                      = 15    ; Face color For three-dimensional display elements and for dialog box backgrounds.
  35. Const COLOR_BTNFACE                                     = 15   
  36. Const COLOR_3DSHADOW                            = 16    ; Shadow color for three-dimensional display elements  
  37. Const COLOR_BTNSHADOW                           = 16    ; (For edges facing away fromthe light source.)
  38. Const COLOR_GRAYTEXT                            = 17    ; Grayed (disabled) text. This color is set to 0 if the current display driver
  39.                                                                                         ; does not support a solid gray color.
  40. Const COLOR_BTNTEXT                                     = 18    ; Text on push buttons.
  41. Const COLOR_INACTIVECAPTIONTEXT         = 19    ; Color of text in an inactive caption.
  42. Const COLOR_3DHILIGHT                           = 20    ; Highlight color For three-dimensional display elements.
  43. Const COLOR_3DHIGHLIGHT                         = 20    ; (For edges facing the light source.)
  44. Const COLOR_BTNHILIGHT                          = 20
  45. Const COLOR_BTNHIGHLIGHT                        = 20
  46. Const COLOR_3DDKSHADOW                          = 21    ; Dark shadow for three-dimensional display elements.
  47. Const COLOR_3DLIGHT                             = 22    ; Light color for three-dimensional display elements
  48.                                                                                         ; (For edges facing the light source.)
  49. Const COLOR_INFOTEXT                            = 23    ; Text color for tooltip controls.
  50. Const COLOR_INFOBK                                      = 24    ; Background color fFor tooltip controls.
  51. Const COLOR_ALTERNATEBTNFACE            = 25    ; I could not find this in the windows documenation.  A few websites that have info
  52.                                                                                         ; on WINE for Linux listed this contant.  I'm not sure if windows uses it though.
  53. Const COLOR_HOTLIGHT                            = 26    ; Color For a hot-tracked item. Single clicking a hot-tracked item executes the item.
  54.                                                                                         ; Windows NT And Windows 95:  This value is not supported.
  55. Const COLOR_GRADIENTACTIVECAPTION       = 27    ; Right side color in the color gradient of an active window's title bar.
  56.                                                                                         ; COLOR_ACTIVECAPTION specifies the left side Color.
  57.                                                                                         ; Use SPI_GETGRADIENTCAPTIONS with the SystemParametersInfo function
  58.                                                                                         ; to determine whether the gradient effect is enabled.
  59.                                                                                         ; Windows NT And Windows 95:  This value is not supported.
  60. Const COLOR_GRADIENTINACTIVECAPTION = 28        ; Right side color in the color gradient of an inactive window's title bar.
  61.                                                                                         ; COLOR_INACTIVECAPTION specifies the left side Color.
  62.                                                                                         ; Windows NT And Windows 95:  This value is not supported.
  63. Const COLOR_MENUHILIGHT                         = 29    ; The color used to highlight menu items when the menu appears as a flat menu
  64.                                                                                         ; (see SystemParametersInfo). The highlighted menu item is outlined with COLOR_HIGHLIGHT.
  65.                                                                                         ; Windows 2000/NT and Windows Me/98/95:  This value is not supported.
  66. Const COLOR_MENUBAR                             = 30    ; The background color for the menu bar when menus appear as flat menus
  67.                                                                                         ; (see SystemParametersInfo).  However, COLOR_MENU continues to specify
  68.                                                                                         ; the background color of the menu popup.
  69.                                                                                         ; Windows 2000/NT and Windows Me/98/95:  This value is not supported.
  70.  
  71.  
  72. ; -----------------------------------------------------------------------------------------------------------------------------------
  73. ; This function returns the red portion of the specified system color.
  74. ; -----------------------------------------------------------------------------------------------------------------------------------
  75. Function GetSysColorR(SystemColor)
  76.         Return (GetSysColor(SystemColor) And $000000FF)
  77. End Function
  78.  
  79.  
  80. ; -----------------------------------------------------------------------------------------------------------------------------------
  81. ; This function returns the green portion of the specified system color.
  82. ; -----------------------------------------------------------------------------------------------------------------------------------
  83. Function GetSysColorG(SystemColor)
  84.         Return (GetSysColor(SystemColor) And $0000FF00) Shr 8
  85. End Function
  86.  
  87.  
  88. ; -----------------------------------------------------------------------------------------------------------------------------------
  89. ; This function returns the blue portion of the specified system color.
  90. ; -----------------------------------------------------------------------------------------------------------------------------------
  91. Function GetSysColorB(SystemColor)
  92.         Return (GetSysColor(SystemColor) And $00FF0000) Shr 16
  93. End Function


Comments :


TAS(Posted 1+ years ago)

 Very useful just what I needed.Here's some quick code to show the colors.wHand=CreateWindow("System Colors",0,0,600,400,0,1)   Screen=CreateCanvas(200,10,350,300,wHand)SetBuffer CanvasBuffer(Screen)Color 255,255,255RepeatIf WaitEvent(1)=$803 Then EndIf KeyHit(1) Thenn=n+1ClsColor GetSysColorR(n),GetSysColorG(n),GetSysColorB(n)ClsText 100,100,nFlipCanvas Screen,1EndIfForever


 

SimplePortal 2.3.6 © 2008-2014, SimplePortal