/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Højre klik med musen
Fra : Thomas Larsen


Dato : 20-11-02 10:38

Hej NG,

Jeg har et lille problem med at højre klikke med musen i mit VB program.

Jeg bruger Eventen MouseDown, hvor jeg fanger hvilken knap der er aktiveret.
Problemet er bare, at når jeg højre klikker på min tekst boks, så starter
den godt nok MouseDows eventen. Men når jeg slipper knappen igen, så kommer
den sædvanlige menu frem (Copy, Paste mm.)

Hvordan slipper jeg af med denne menu?

/Thomas
thomasl@amitech.dk



 
 
John Doe (21-11-2002)
Kommentar
Fra : John Doe


Dato : 21-11-02 14:48

Dette er ikke et "rigtigt" svar på dit problem ...

sad og kiggede lidt - men kunne ikke finde en brugbar løsning.

Hvis du skal bruge højreklikket til at lave din egen menu med kan du bruge
eksemplet her:
http://www.allapi.net/apilist/GetSystemMenu.shtml# - det der hedder
TrackPopupMenu.

(byt om på button 1 og 2 i eksemplet, og ændr me.hWnd til text1.hWnd)

Hvis du vil fjerne popup-menuen helt - så kan jeg desværre ikke hjælpe.

Ved brug af sub-classing burde det kunne lade sig gøre ....

Robert

"Thomas Larsen" <Test@test.dk> wrote in message
news:3ddb580c$0$23239$edfadb0f@dread13.news.tele.dk...
> Hej NG,
>
> Jeg har et lille problem med at højre klikke med musen i mit VB program.
>
> Jeg bruger Eventen MouseDown, hvor jeg fanger hvilken knap der er
aktiveret.
> Problemet er bare, at når jeg højre klikker på min tekst boks, så starter
> den godt nok MouseDows eventen. Men når jeg slipper knappen igen, så
kommer
> den sædvanlige menu frem (Copy, Paste mm.)
>
> Hvordan slipper jeg af med denne menu?
>
> /Thomas
> thomasl@amitech.dk
>
>



Claus H (22-11-2002)
Kommentar
Fra : Claus H


Dato : 22-11-02 13:44

"Thomas Larsen" <Test@test.dk> skrev i en meddelelse
news:3ddb580c$0$23239$edfadb0f@dread13.news.tele.dk...
> Hej NG,
>
> Jeg har et lille problem med at højre klikke med musen i mit VB program.
>
> Jeg bruger Eventen MouseDown, hvor jeg fanger hvilken knap der er
aktiveret.
> Problemet er bare, at når jeg højre klikker på min tekst boks, så starter
> den godt nok MouseDows eventen. Men når jeg slipper knappen igen, så
kommer
> den sædvanlige menu frem (Copy, Paste mm.)
>
> Hvordan slipper jeg af med denne menu?
>
> /Thomas
> thomasl@amitech.dk
>
Jeg fandt en gl. side via Google:
----------------------------------------------------------------------------
--------------
Disable the popup menu of a text box

A common Frequently Asked Question is how to disable the popup menu of a
TextBox. Since VB5 was released it's possible to use the AdressOf keyword to
add a Hook and a callback function. Just add this code to a .BAS module and
call the Hook sub and pass the hWnd of a textbox as an argument. You must
call the UnHook sub before you unload the form or you might get a General
Protection Fault.

Declarations

Add the following code to the declarations section of a module.

Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" _
(ByVal lpPrevWndFunc As Long, _
ByVal hWnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As LongDeclare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" _
(ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As LongPublic Const GWL_WNDPROC = -4
Public Const WM_RBUTTONUP = &H205
Public lpPrevWndProc As Long
Private lngHWnd As Long
Module Code

Add the following code to the module.

Public Sub Hook(hWnd As Long)
lngHWnd=hWnd
lpPrevWndProc = SetWindowLong(lngHWnd, GWL_WNDPROC, _
AddressOf WindowProc)
End SubPublic Sub UnHook()
Dim lngReturnValue As Long
lngReturnValue = SetWindowLong(lngHWnd, GWL_WNDPROC, lpPrevWndProc)
End SubFunction WindowProc(ByVal hw As Long, _
ByVal uMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As LongSelect Case uMsg
Case WM_RBUTTONUP
'Do nothing
'Or popup you own menu
Case Else
WindowProc = CallWindowProc(lpPrevWndProc, hw, _
uMsg, wParam, lParam)
End Select
End Function
Form Code

Add the following code to the Form_Load event of the form where the text box
is placed:

Call Hook(Text1.hWnd)
Where Text1 is the name of the text box you want to Subclass.

Add the following code to the Form_Unload event:

Call UnHook
Tip by Joacim Andersson

----------------------------------------------------------------------------
--------------

Jeg har ikke selv prøvet det, men den burde gøre udslaget.
Siden er iøvrigt ikke længere tilgængelig på den originale site, så denne er
den cachede version fra Google.

Håber det kan hjælpe.

Claus H.



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste