Frage : Wie nehmen i-Unterklasse in VB6 Benutzer gelassenes Mäuseereignis auf dem Titelstab gefangen?

Ich möchte das Ereignis gefangennehmen, wenn der Benutzer link-klickt auf dem Titelstab einer Form in VB6….Maus unten, Mäuseklicken etc. dankt .....

Antwort : Wie nehmen i-Unterklasse in VB6 Benutzer gelassenes Mäuseereignis auf dem Titelstab gefangen?

Es gibt Typo im vorhergehenden Beispiel, in dem die letzte Linie die Außenseite sein sollte wenn Blockaussage. Unter Ihnen ein Funktionsbeispiel für die Entdeckung des linken doppelten Klickens, das finden erhalten Sie dann begonnen können Ihnen können die anderen Ereignisse von der Verbindung oben hinzufügen.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
'Module1.bas

Wahl ausdrücklich

Privates Const WM_NCLBUTTONDBLCLK    als lang = &HA3&
Privates Const HTCAPTION             als lang = &H2&
Privates Const GWL_WNDPROC           als lang = (- 4)

Privat Funktion SetWindowLongA Bibliothek „User32.dll“ (ByVal hWnd als lang, ByVal nIndex als lang, ByVal dwNewLong als lang) als lang erklären
Privat Funktion CallWindowProcA Bibliothek „User32.dll“ (ByVal lpPrevWndFunc als lang, ByVal hWnd als lang, ByVal Msg als lang, ByVal wParam als lang, ByVal lParam als lang) als lang erklären

Privates hWindow     als lang
Privates Funktions        als lang

Allgemeines VorAttatch (ByVal hWnd als lang)
  Wenn hWindow = 0 dann
    hWindow = hWnd
    funktionell = SetWindowLongA (hWindow, GWL_WNDPROC, AddressOf WndProc)
  Beenden wenn
Unterseeboot beenden

Allgemeines VorDetatch ()
  Wenn hWindow <> 0 dann
    Anruf SetWindowLongA (hWindow, GWL_WNDPROC, funktionell)
    hWindow = 0
  Beenden wenn
Unterseeboot beenden
 
Allgemeine Funktion WndProc (ByVal hWnd als lang, ByVal uMsg als lang, ByVal wParam als lang, ByVal lParam als lang) als lang
Wenn uMsg = WM_NCLBUTTONDBLCLK dann
  Wenn wParam = HTCAPTION dann
  'TODO: /etwas, als Doppeltes klickte.
    Debug.Print „doppeltes angeklickt: “; Zeit
  Beenden wenn
Beenden wenn
WndProc = CallWindowProcA (funktionell, hWnd, uMsg, wParam, lParam)
Enden-Funktion



'Form1
Wahl ausdrücklich

Privates VorForm_Load ()
  Attatch Me.hWnd
Enden-Unterseeboot
 
Privates VorForm_QueryUnload (Löschen als ganze Zahl, UnloadMode als ganze Zahl)
  Detatch
Enden-Unterseeboot
Weitere Lösungen  
 
programming4us programming4us