CÓMO

Imponer que formulario de Visual Basic permanezca encima de ArcMap o ArcCatalog

Last Published: January 19, 2021

Resumen

Nota: Este artículo corresponde únicamente a las versiones 8.x de ArcGIS. Es posible que versiones posteriores de ArcGIS incluyan funcionalidades distintas, así como nombres y ubicaciones distintos para menús, comandos y herramientas de geoprocesamiento.
Nota: Las versiones de ArcGIS 10.5 y posteriores no incluyen la configuración de compatibilidad con Microsoft VBA.

Los usuarios que crean una DLL ActiveX ocasionalmente necesitan cargar un formulario de Visual Basic como parte de la aplicación. El formulario, cuando se visualiza por primera vez, aparece delante de la aplicación principal. De forma predeterminada, el formulario de Visual Basic se reposiciona tras ArcMap o ArcCatalog cuando un usuario interactúa con la GUI de ArcMap o ArcCatalog.

Procedimiento

Siga estos pasos para asegurarse de que el formulario de Visual Basic siempre permanezca encima de la aplicación principal.

Personalice aún más haciendo llamadas directas a SetWindowPos. Para obtener más información sobre SetWindowPos, visite Microsoft MSDN.

  1. En el proyecto de DLL ActiveX de Visual Basic, agregue un nuevo módulo estándar y copie este código en el 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. En Form_Load, agregue:
SetWin_TOPMOST Me.hWnd

Id. de artículo:000004399

Obtener ayuda de expertos en ArcGIS

Contactar con soporte técnico

Descargar la aplicación de soporte de Esri

Ir a las opciones de descarga

Información relacionada

Descubrir más sobre este tema