| |
Fortgeschrittene ProgrammierungFenster unter dem Mauszeiger schließen. | | | Autor: Hauke | Datum: 01.08.04 18:00 |
| Ich will ein Fester, dass sich unter dem Mauszeiger befindet löschen. Dies man ich mit diesen Anweisungen:
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" _
(lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "user32" _
(ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Dim P As POINTAPI
GetCursorPos P
SendMessage WindowFromPoint(P.x, P.y), WM_CLOSE, ByVal 0&, ByVal 0& Aber wenn der Mauszeiger auf ein Control im Fenster befindet wird das Control geschlossen. Wie kann ich den hwnd wert vom Fenster herausbekommen auch wenn der Mauszeiger sich auf einem beliebigen Control befindet? | |
OK | | | Autor: Hauke | Datum: 01.08.04 21:16 |
| OK Danke. | |
Doch noch eine Frage | | | Autor: Hauke | Datum: 01.08.04 21:23 |
| Beim Internet Explorer Funktioniert das Ganze nicht. | |
Re: Doch noch eine Frage | | | Autor: Hauke | Datum: 02.08.04 15:14 |
| Ich hab eine Lösung gefunden. Mit der Funktion Sub „CloseWindow“ kann man ein Internet Explorer Fenster Schließen. Aber jetzt musste ich noch eine blöde Überprüfung hinzufügen, die mir eigentlich nicht richtig gefällt. Gibt es vielleicht eine bessere Lösung oder ist diese Lösung doch gut? Hier der Code:
Dim P As POINTAPI
Dim hWnd As Long
Dim lLength As Long
Dim sWindowText As String * 255
GetCursorPos P
hWnd = GetTopWindow(WindowFromPoint(P.x, P.y))
lLength = SendMessage(hWnd, WM_GETTEXT, _
Len(sWindowText) + 1, ByVal sWindowText)
If InStr(1, Left(sWindowText, lLength), "Microsoft Internet") > 0 Then
CloseWindow hWnd
Else
SendMessage hWnd, WM_CLOSE, ByVal 0&, ByVal 0&
End If | |
Jetzt OK | | | Autor: Hauke | Datum: 02.08.04 20:54 |
| So sieht das Ergebnis aus:
Dim P As POINTAPI
Dim hwnd As Long
Dim sClassName As String
GetCursorPos P
hwnd = GetTopWindow(WindowFromPoint(P.x, P.y))
sClassName = String$(256, " ")
GetClassName hwnd, sClassName, 255
sClassName = Left$(sClassName, InStr(sClassName, _
Chr$(0)) - 1)
If sClassName = "IEFrame" Then
SendMessage hwnd, WM_SYSCOMMAND, _
SC_CLOSE, LNULL
Else
SendMessage hwnd, WM_CLOSE, ByVal 0&, ByVal 0&
End If | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|