vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Re: 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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
TextBox ohne KontextMenü1.235altasam22.05.05 01:39
Re: TextBox ohne KontextMenü797vbtricks22.05.05 11:24
Re: TextBox ohne KontextMenü797altasam28.05.05 00:40
Re: TextBox ohne KontextMenü776Kenjiro28.05.05 03:29
Re: TextBox ohne KontextMenü807altasam28.05.05 10:47
Re: TextBox ohne KontextMenü765Kenjiro30.05.05 00:16

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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