HOW TO

Erzwingen, dass die Positionierung eines Visual Basic-Formulars vor ArcMap oder ArcCatalog erhalten bleibt

Last Published: January 19, 2021

Zusammenfassung

Hinweis: Dieser Artikel gilt nur für die ArcGIS-Versionen 8.x. Höhere Versionen von ArcGIS enthalten möglicherweise andere Funktionalität sowie andere Namen für Menüs, Befehle und Geoverarbeitungswerkzeuge, die sich auch an anderen Orten befinden können.
Hinweis: Die ArcGIS-Versionen 10.5 und höher enthalten kein Microsoft VBA Compatibility-Setup.

Beim Erstellen einer ActiveX-DLL muss gelegentlich ein Visual Basic-Formular als Teil der Anwendung geladen werden. Das Formular wird zunächst vor der primären Anwendung angezeigt. Standardmäßig wird das Visual Basic-Formular dann hinter ArcMap oder ArcCatalog positioniert, wenn ein Benutzer mit der GUI von ArcMap oder ArcCatalog interagiert.

Vorgehensweise

Führen Sie die folgenden Schritte aus, um sicherzustellen, dass das Visual Basic-Formular stets vor der primären Anwendung positioniert bleibt.

Eine noch optimalere Anpassung ist möglich, indem Sie "SetWindowPos" direkt aufrufen. Weitere Informationen zu "SetWindowPos" finden Sie unter Microsoft MSDN.

  1. Fügen Sie im Visual Basic-ActiveX-DLL-Projekt ein neues Standardmodul hinzu, und kopieren Sie diesen Code in das Modul.
Code: 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. Fügen Sie in "Form_Load" folgende Zeile hinzu:
SetWin_TOPMOST Me.hWnd

Artikel-ID:000004399

Hilfe von ArcGIS-Expert*innen erhalten

Technischen Support kontaktieren

Die Esri Support-App herunterladen

Zu den Download-Optionen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden