请问怎样屏蔽 Text控件的右键菜单
请大侠指教
请大侠指教
解决方案 »
- 50分请高手帮我看一下这几行代码哪里代了?为什么啊?奇怪了
- 如何在一个窗体中定义一个变量来公用?
- 定时打印问题
- 在调用DataReport打印Access的数据,如何将数据记录自动跳至最后一个记录,在线求助!!!
- 系统兼容的问题,帮帮忙!
- 我可不可以在程序运行时控制TOOLBAR上的某个按钮是否有效
- 存盘时,如何实现文件名变量?
- ADODC绑定数据源的问题
- 谁有空啊,帮忙看一下我的程序,分数送上
- system error . classfactory无法供应请求的类
- 我的无源数据源连接之后,在与datagrid连接时,datagrid无法显示数据内容!
- 请问各位大侠如何让MSHFlexGrid控件及时更新?(急)
如何屏蔽TextBox的鼠标右健。
http://expert.csdn.net/Expert/topic/2643/2643107.xml?temp=.8392603另,提问之前可以找一下以前的帖子
Public OldWindowProc As Long
'保存默认的窗口函数的地址
Public Const WM_CONTEXTMENU = &H7B
'当右击文本框时,产生这条消息
Public Const GWL_WNDPROC = (-4)
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public 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 LongPublic Function MyMesg(ByVal hWnd As OLE_HANDLE, ByVal Msg As OLE_HANDLE, ByVal wp As OLE_HANDLE, ByVal lp As Long) As Long
If Msg <> WM_CONTEXTMENU Then
MyMesg = CallWindowProc(OldWindowProc, hWnd, Msg, wp, lp)
'如果消息不是WM_CONTEXTMENU,就调用默认的窗口函数处理
Exit Function
End If
MyMesg = True
End FunctionPrivate Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then Exit Sub
OldWindowProc = GetWindowLong(Text1.hWnd, GWL_WNDPROC)
'取得窗口函数的地址
Call SetWindowLong(Text1.hWnd, GWL_WNDPROC, AddressOf MyMesg)
'用MyMesg代替窗口函数处理消息
End SubPrivate Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then Exit Sub
Call SetWindowLong(Text1.hWnd, GWL_WNDPROC, OldWindowProc)
'恢复窗口的默认函数
'弹出自定义菜单
End Sub