DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 176400 - Última revisão: quinta-feira, 15 de julho de 2004 - Revisão: 3.2

 

Sumário

Microsoft Internet Explorer 3.0 inclui um controle ActiveX personalizado chamado WebBrowser. O controle WebBrowser não inclui um método de impressão que pode ser chamado diretamente a partir do Visual Basic. Tto imprimir o conteúdo do controle WebBrowser no Visual Basic, você deve definir o foco à parte de conteúdo do controle e uma seqüência de pressionamento de tecla CTRL-P deve ser enviada para o controle.

A dificuldade com isso é que a janela do WebBrowser, na verdade, é composta de mais de uma janela. A janela que precisa ter o foco para imprimir é aquele com um nome de classe de "HTML_Internet Explorer" e o método SetFocus define o foco para a janela 'Exibir de DocObject do SHELL'. Antes de enviar uma seqüência de pressionamento de tecla CTRL-P para o controle WebBrowser, a janela filho correta do controle deve ter o foco.

Mais Informações

Para imprimir o controle, simplesmente execute as etapas abaixo para definir o foco para a janela correta e iniciar a função SendKeys do:
  1. Inicie um novo projeto Exe padrão no Visual Basic. O Form1 é criado por padrão.
  2. Adicione o "Microsoft Internet Controls" (shdocvw.dll) para o projeto.
  3. Coloque o controle WebBrowser no formulário padrão (Form1).
  4. Adicione o seguinte código para carregar a página padrão:
          Private Sub Form_Load()
              WebBrowser1.Navigate "http://www.microsoft.com"
          End Sub
    					
  5. Coloque um CommandButton no formulário e altere sua legenda para "Print". Adicione o seguinte código ao evento Click do botão:
          Private Sub Command1_Click()
              Dim hwnd As Long
              WebBrowser1.SetFocus
              hwnd = GetFocus
              SetFocusToBrowser (hwnd)
              SendKeys "^p"   'CTRL+P to print
          End Sub
    					
  6. Adicione um módulo para o projeto e adicione o seguinte código para ele:
          Option Explicit
    
          Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, _
              ByVal wCmd As Long) As Long
    
          Declare Function GetWindowLong Lib "user32" _
              Alias "GetWindowLongA" (ByVal hwnd As Long, _
              ByVal nIndex As Long) As Long
    
          Declare Function SetFocusAPI Lib "user32" _
              Alias "SetFocus" (ByVal hwnd As Long) As Long
    
          Declare Function GetFocus Lib "user32" () As Long
    
          Declare Function SendMessage Lib "user32" _
              Alias "SendMessageA" (ByVal hwnd As Long, _
              ByVal wMsg As Long, ByVal wParam As Long, _
              lParam As Long) As Long
    
          'GetWindow constants
          Public Const GW_CHILD = 5
          'GetWindowLong constants
          Public Const GWL_STYLE = (-16)
          Public Const WS_VSCROLL = &H200000
    
          Sub SetFocusToBrowser(hBrowserHwnd As Long)
              Dim lStyle As Long
              Dim lResult As Long
              Dim hwnd As Long
              hwnd = hBrowserHwnd
              While (lResult = 0) And (hwnd <> 0)
                  hwnd = GetWindow(hwnd, GW_CHILD)
                  lStyle = GetWindowLong(hwnd, GWL_STYLE)
                  lResult = lStyle And WS_VSCROLL
              Wend
              SetFocusAPI (hwnd)
          End Sub
    					
  7. Execute o projeto e clique em Imprimir.

Referências

Para obter informações adicionais, leia os seguintes artigos na Base de dados de Conhecimento da Microsoft:
162719  (http://support.microsoft.com/kb/162719/EN-US/ ) Como usar o controle WebBrowser do Visual Basic 5.0

155969  (http://support.microsoft.com/kb/155969/EN-US/ ) Como distribuir o controle WebBrowser

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic Control Creation Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • 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 kb32bitonly kbhowto KB176400 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: 176400  (http://support.microsoft.com/kb/176400/en-us/ )
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store