Instrução

Forçar um formulário do Visual Basic a ficar no topo do ArcMap ou ArcCatalog

Last Published: January 19, 2021

Resumo

Nota: Este artigo se refere apenas às versões do ArcGIS 8.x. Versões posteriores do ArcGIS podem conter diferentes funcionalidades, bem como diferentes nomes e locais para menus, comandos e ferramentas de geoprocessamento.
Nota: ArcGIS versões 10.5 e posterior não incluem a configuração de compatibilidade do Microsoft VBA.

Os usuários que criam uma DLL ActiveX ocasionalmente precisam carregar um formulário do Visual Basic como parte do aplicativo. O formulário, quando exibido pela primeira vez, aparece na frente do aplicativo principal. Por padrão, o formulário do Visual Basic é então reposicionado atrás do ArcMap ou ArcCatalog quando um usuário interage com a GUI do ArcMap ou ArcCatalog.

Procedimento

Siga as etapas abaixo para garantir que o formulário do Visual Basic sempre permaneça na parte superior do aplicativo principal.

Personalize ainda mais fazendo chamadas diretas para SetWindowPos. Para mais informações sobre SetWindowPos, visite Microsoft MSDN.

  1. No projeto do Visual Basic ActiveX DLL, adicione um novo módulo padrão e copie este código no módulo.
Código: Option Explicit ' WINDOW POSITIONING Declare Function SetWindowPos Lib "user32" ( _ ByVal hWnd As Long, ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _ ByVal cy As Long, ByVal wFlags As Long) As Long ' SetWindowPos Flags Public Const SWP_NOSIZE = &H1 Public Const SWP_NOMOVE = &H2 Public Const SWP_NOZORDER = &H4 Public Const SWP_NOREDRAW = &H8 Public Const SWP_NOACTIVATE = &H10 Public Const SWP_FRAMECHANGED = &H20 Public Const SWP_SHOWWINDOW = &H40 Public Const SWP_HIDEWINDOW = &H80 Public Const SWP_NOCOPYBITS = &H100 Public Const SWP_NOOWNERZORDER = &H200 Public Const SWP_DRAWFRAME = SWP_FRAMECHANGED Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDER Public Const FLAGS As Long = SWP_NOMOVE Or SWP_NOSIZE Public Const HWND_TOP = 0 Public Const HWND_BOTTOM = 1 Public Const HWND_TOPMOST = -1 Public Const HWND_NOTOPMOST = -2 Public Sub SetWin_NOTOPMOST(hWnd As Long) SetWindowPos hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS End Sub Public Sub SetWin_TOPMOST(hWnd As Long) SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS End Sub (
  1. Em Form_Load adicione:
SetWin_TOPMOST Me.hWnd

ID do Artigo:000004399

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com suporte técnico

Baixe o Esri Support App

Ir para opções de download

Informações Relacionadas

Descubra mais sobre este tema