| |

Allgemeine DiskussionenRe: TextBox ohne KontextMenü | |  | Autor: altasam | Datum: 28.05.05 00:40 |
| Hi vbtricks,
Ich hab derweil a bisserl am Code gefeilt - alles ohne Subclassing.
Das folgende setzt beim Niederdrücken der rechten Maustaste den Fokus auf die TextBox (macht die TextBox sonst auch nicht !).
Beim Loslassen der rechten Maustaste - also wie beim echten KontextMenü - wird eine Form geöffnet, die beim Niederdrücken der linken Maustaste wieder
geschlossen wird.
Eine Form als KontextMenü daher, weil sie mehr Gestaltungsmöglichkeiten hat,
als eine PictureBox oder ein PopupMenü.
Das alles funktioniert über die gesamte Anwendung, da sie in einem Timer der
Hauptform ist.
Static IsRBUTTON As Boolean
Dim Pt As POINTAPI, aWnd As Long
'Get current Window:
Call GetCursorPos(Pt) 'Get current CursorPosition
aWnd = WindowFromPoint(Pt.X, Pt.Y) 'Get the Window under the Cursor
If GetAsyncKeyState(VK_RBUTTON) Then 'If right Button IS pressed...
IsRBUTTON = True
Putfocus aWnd
LockWindowUpdate GetDesktopWindow
ElseIf IsRBUTTON Then 'ElseIf right Button WAS pressed (= released)...
IsRBUTTON = False 'RESET
ScreenToClient Me.hwnd, Pt
Pt.X = Pt.X * tpX
Pt.Y = Pt.Y * tpY
'Open ContextMenu:
Load frmCTX
SetWindowPos frmCTX.hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
'Place ContextMenu next to Cursor:
With frmCTX
.Move Pt.X, Pt.Y
If .Top + .Height > Me.ScaleHeight Then .Top = Pt.Y - .Height
If .Top < 0 Then .Top = 0
If .Left + .Width > Me.ScaleWidth Then .Left = Pt.X - .Width
If .Left < 0 Then .Left = 0
End With
LockWindowUpdate False
ElseIf GetAsyncKeyState(VK_LBUTTON) Then 'ElseIf left Button is pressed...
'Close ContextMenu:
If Not Screen.ActiveForm Is frmCTX Then Unload frmCTX
'If not clicked on the ContextMenu itself...
End If
Wenn jemand was besseres weiß, bitte melden.
Danke |  |
 | 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 |
  |
|
TOP! Unser Nr. 1 
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) 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-2025 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
|
|