ID do artigo: 153929 - Última revisão: terça-feira, 13 de julho de 2004 - Revisão: 2.1

Como usar o diálogo de cor de Comdlg32.dll em VB e acesso

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sumário

Fazer uso da Comdlg32.dll é uma boa reutilização de recursos no Windows porque o Windows sempre tem Comdlg32.dll carregado. Se você usar o controle COMDLG32.OCX em vez disso, o programa deve carregar o OCX na memória e você também deve distribuir um arquivo adicional de 90 K aos seus clientes. O controle OCX fornece uma interface fácil de usar para caixas de diálogo predefinidas, mas é uma ocorrência mais cara em desempenho e recursos. Para otimizar o desempenho e reduzir o uso de recursos, você deve minimizar o uso de controles em seus aplicativos e use as chamadas Win32 API diretamente. É abaixo um exemplo de código de como usar a caixa de diálogo Escolher cor na Comdlg32.dll.

Mais Informações

1a. Visual Basic: iniciar um novo projeto. O Form1 é criado por padrão.

o Access 1b.: abrir um banco de dados e criar um novo formulário.
  1. Adicione um CommandButton (Command1) para o formulário.
  2. Adicione o seguinte código à seção Declaração geral do formulário:
       Option Explicit
    
       Private Type CHOOSECOLOR
         lStructSize As Long
         hwndOwner As Long
         hInstance As Long
         rgbResult As Long
         lpCustColors As String
         flags As Long
         lCustData As Long
         lpfnHook As Long
         lpTemplateName As String
       End Type
    
       Private Declare Function ChooseColorAPI Lib "comdlg32.dll" Alias _
         "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long
    
       Dim CustomColors() As Byte
    
       Private Sub Command1_Click()
           Dim cc As CHOOSECOLOR
           Dim Custcolor(16) As Long
           Dim lReturn As Long
           cc.lStructSize = Len(cc)
           cc.hwndOwner = Me.hWnd
           cc.hInstance = 0
           cc.lpCustColors = StrConv(CustomColors, vbUnicode)
           cc.flags = 0
           lReturn = ChooseColorAPI(cc)
           If lReturn <> 0 Then
               Me.Caption = "RGB Value User Chose: " & Str$(cc.rgbResult)
               Me.BackColor = cc.rgbResult            ' Visual Basic only ****
               Me.Section(0).BackColor = cc.rgbResult ' Access only **********
               CustomColors = StrConv(cc.lpCustColors, vbFromUnicode)
           Else
               MsgBox "User chose the Cancel Button"
           End If
       End Sub
    
       Private Sub Form_Load()
           ReDim CustomColors(0 To 16 * 4 - 1) As Byte
           Dim i As Integer
    
           For i = LBound(CustomColors) To UBound(CustomColors)
               CustomColors(i) = 0
           Next i
       End Sub
    
    					
4a. Visual Basic: pressione a tecla F5 para executar o projeto.

o Access 4b.: Use o menu View|Form para abrir o formulário e executá-lo.
  1. Clique no CommandButton e a caixa de diálogo cor será exibida. Quando você escolher uma cor e pressione ' OK ', a cor de plano de fundo do formulário será alterado para a cor selecionada.
CC_PREVENTFULLOPEN constante, com um valor decimal de 4, pode ser usado no elemento sinalizadores da estrutura CHOOSECOLOR se você desejar impedir que a parte de cores personalizadas a caixa de diálogo seja exibida.

Observação: In a rotina de Command1_Click acima, o código para definir a cor de plano de fundo de um formulário do Access e um formulário do Visual Basic é ligeiramente diferente. Os dois comandos estão incluídos e comentados. Apenas digite o comando apropriado para o produto que você está usando.

Referências

Microsoft Visual Basic Programmer Guide, Capítulo 11, P.325-332.

Win32 SDK.

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 de 32 Bits Enterprise Edition
Palavras-chave: 
kbmt kbhowto KB153929 KbMtpt
Tradução automáticaTradução automática
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: 153929  (http://support.microsoft.com/kb/153929/en-us/ )