Como definir cores de sistema do Windows usando a API e o Visual Basic

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 82158
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este artigo descreve como usar as funções GetSysColor e SetSysColors API para definir as cores do sistema para várias partes do vídeo no Microsoft Windows. Isso permite que você alterar a exibição Windows programaticamente, em vez de usar o painel de controle do Windows.
Mais Informações
O Windows mantém uma matriz interna de 19 valores de cor que ele usa para exibir as diferentes partes da tela do Windows. Alterar quaisquer desses valores afetará todas as janelas para todos os aplicativos executando sob Windows. Observe que a rotina SetSysColors altera somente a lista interna do sistema. Isso significa que qualquer alteração feita usando SetSysColors só será válida para a sessão atual do Windows. Para fazer essas alterações permanentes, você precisará alterar a seção [CORES] do arquivo de inicialização do Windows, Win.ini.

Para obter mais informações sobre como modificar a inicialização do Windows arquivo programaticamente, consulte as seguintes palavras na Base de dados de Conhecimento da Microsoft:
GetProfileString e WriteProfileString

Para usar as funções GetSysColor e SetSysColors de um Visual Basic para aplicativos do Windows, você deve primeiro declará-los na seção Declaração de sua janela de código.

Declare a instrução Function da seguinte maneira:
Declare Function GetSysColor Lib "User" (ByVal nIndex%) As LongDeclare Sub SetSysColors Lib "User" (ByVal nChanges%,                                     lpSysColor%,                                     lpColorValues&)				

Observação: Cada instrução Declare acima deve ser escrita em uma linha.

Os parâmetros são definidos da seguinte maneira:
Parameter         Definition-------------------------------------------------------------nIndex%           Specifies the display element whose color                  is to be retrieved. See the list below to                  find the index value for the corresponding                  display element.nChanges%         Specifies the number of system colors to                  be changed.lpSysColor%       Identifies the array of integer indexes                  that specify the elements to be changed.lpColorValues&    Identifies the array of long integers that                  contain the new RGB color values for each                  element to be changed.				

Os seguintes índices cor do sistema são definidos usando as constantes predefinidas encontradas no arquivo Windows.H fornecido com o Microsoft Windows Software Development Kit (SDK). O valor correspondente é o valor colocado na matriz lpSysColor %.

Lista de índices de cores do sistema

Windows.H Definition  Value  Description-------------------------------------------------------COLOR_SCROLLBAR         0    Scroll-bar gray areaCOLOR_BACKGROUND        1    DesktopCOLOR_ACTIVECAPTION     2    Active window captionCOLOR_INACTIVECAPTION   3    Inactive window captionCOLOR_MENU              4    Menu backgroundCOLOR_WINDOW            5    Window backgroundCOLOR_WINDOWFRAME       6    Window frameCOLOR_MENUTEXT          7    Text in menusCOLOR_WINDOWTEXT        8    Text in windowsCOLOR_CAPTIONTEXT       9    Text in caption, size box,                             scroll bar arrow boxCOLOR_ACTIVEBORDER      10   Active window borderCOLOR_INACTIVEBORDER    11   Inactive window borderCOLOR_APPWORKSPACE      12   Background color of multiple                             document interface (MDI)                             applicationsCOLOR_HIGHLIGHT         13   Items selected item in a                             controlCOLOR_HIGHLIGHTTEXT     14   Text of item selected in a                             controlCOLOR_BTNFACE           15   Face shading on push buttonCOLOR_BTNSHADOW         16   Edge shading on push buttonCOLOR_GRAYTEXT          17   Grayed (disabled) text. This                             color is set to 0 if the                             current display driver does not                             support a solid gray color.COLOR_BTNTEXT           18   Text on push buttons				

Este é um exemplo de como definir as cores do sistema para diferentes partes da tela do Windows:
  1. Iniciar o Visual Basic para Windows ou no menu ' arquivo ', escolha New Project (pressione ALT, F, N) se o Visual Basic para Windows já estiver sendo executado. O Form1 é criado por padrão.
  2. Criar os seguintes controles para Form1:
       Control         Name      Property Setting   ------------------------------------------------------------   Command button  Command1  Caption = "Change all Colors"   Command button  Command2  Caption = "Change selected Colors"    (In Visual Basic version 1.0 for Windows, set the CtlName    Property for the above objects instead of the Name property.)						
  3. Adicione o seguinte código à seção Declaração geral do Form1:
       Declare Function GetSysColor Lib "User" (ByVal nIndex%) As Long   ' Enter the following Declare statement as one, single line:   Declare Sub SetSysColors Lib "User" (ByVal nChanges%, lpSysColor%,      lpColorValues&)   Const COLOR_BACKGROUND = 1   Const COLOR_ACTIVECAPTION = 2   Const COLOR_WINDOWFRAME = 6   Dim SavedColors(18) As Long						
  4. Adicione o seguinte código ao procedimento de evento Form_Load do Form1:
       Sub Form_Load ()      ' Save current system colors:      For i% = 0 To 18         SavedColors(i%) = GetSysColor(i%)      Next i%   End Sub						
  5. Adicione o seguinte código ao procedimento de evento Form_Unload do Form1:
       Sub Form1_Unload ()      ' Restore system colors:      ReDim IndexArray(18) As Integer      For i% = 0 To 18         IndexArray(i%) = i%      Next i%      SetSysColors 19, IndexArray(0), SavedColors(0)   End Sub						
  6. Adicione o seguinte código ao procedimento de evento Command1_Click do Form1:
       Sub Command1_Click ()      ' Change all display elements:      ReDim NewColors(18) As Long      ReDim IndexArray(18) As Integer      For i% = 0 to 18         NewColors(i%) = QBColor(Int(16 * Rnd))         IndexArray(i%) = i%      Next i%      SetSysColors 19, IndexArray(0), NewColors(0)   End Sub						
  7. Adicione o seguinte código ao procedimento de evento Command2_Click do Form1:
       Sub Command2_Click ()      ' Change desktop, window frames, and active caption:      ReDim NewColors(18) As Long      ReDim IndexArray(18) As Integer      For i% = 0 to 18         NewColors(i%) = QBColor(Int(16 * Rnd))         IndexArray(i%) = i%      Next i%      SetSysColors 19, IndexArray(0), NewColors(0)   End Sub						
  8. No menu ' Executar ', escolha Start ou pressione a tecla F5 para executar o programa.
Escolhendo o botão Alterar todas as cores fará com que todas as partes diferentes da exibição do Windows a ser atribuída uma cor gerada aleatoriamente. Escolhendo o botão Alterar selecionado elementos fará com que somente a área de trabalho, legenda da janela ativa e quadros de janela a ser atribuída uma cor aleatória. Para restaurar as cores de sistema originais, clique duas vezes na caixa menu de controle para finalizar o aplicativo.
2,00 3.00

Propriedades

ID do Artigo: 82158 - Última Revisão: 12/04/2015 09:12:55 - Revisão: 2.0

Microsoft Visual Basic 3.0 Professional Edition, Microsoft Visual Basic 3.0 Professional Edition, Microsoft Visual Basic 1.0 Standard Edition

  • kbnosurvey kbarchive kbmt KB82158 KbMtpt
Comentários