放在 text1_mousedown 事件中即可
解决方案 »
- VB实现下滑移动菜单? 有无好的例程???
- vb调用类模板自定义函数
- Visual Studio下个版本中的Class Designer需要您的建议!
- 用ADO访问修改SQLserver数据库,无法更改指定数据集
- 怎样通过IP地址或对方计算机名访问对方数据呀?
- 在VB中怎样使指针变成“小手”的形状?
- 重大发现,大家都来看看啊,闹鬼啦
- 怎样实现农历的功能
- 用common dialog保存文件时如何判断文件名是否已经存在,若存在提示是否覆盖,请给出详细代码
- 大家有没有在2000下面能够察看CPU使用情况的源码〉?注意留言给我,我好放分!
- 在注册表被网站锁住后,要用把一些内容导进去,就可以打开了,我给忘了!!这些内容谁知道?
- 高分求助:为什么我用data控件连access数据库会出问题
If Button = 2 Then
Text1.Enabled=False
PopupMenu youjian
Text1.Enabled=True
End If
End Sub
默认值是不显示。
autoverbmenu=ture 显示这样在他的MOUSEUP事件里放上你的代码
显示的就是你的菜单了
If Button = 2 Then
Text1.Enabled=False
PopupMenu youjian
Text1.Enabled=True
End If
End Sub可以实现。用mouseup事件不行!
有谁可以解释一下为什么要用mousedown事件才可以。而且必须是text1.enabled=false才行吗?
回复人: heimayi(黑蚂蚁) ( ) 信誉:100
原来我就是用richtextbox编写的,现在我想用textbox重新写一次。
感觉难度大了很多:(
OldWindowProc=GetwindowLong(textbox.hwnd,GWL_WNDPROC)
2.用自定义函数取代
setwindowlong(textbox.hwnd,GWL_WNDPROC,address of YourFunction)
这个函数必须写在模块里,函数原形:
Public Function SubClass1_WndMessage(ByVal hWnd As OLE_HANDLE, ByVal Msg As OLE_HANDLE, ByVal wp As OLE_HANDLE, ByVal lp As Long) As Long
on error resume next
If Msg <> WM_CONTEXTMENU Then
SubClass1_WndMessage = CallWindowProc(OldWindowProc, hWnd, Msg, wp, lp)
' 如果消息不是WM_CONTEXTMENU,就调用默认的窗口函数处理
Exit Function
End If
SubClass1_WndMessage = True
End Function
在form_unload事件里加上
Call SetWindowLong(Text1.hWnd, GWL_WNDPROC, OldWindowProc)
一些声明:
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
Private 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 Long
Public Const GWL_WNDPROC = (-4)
小心使用,VB在消息函数里不支持断点和debug.stop,否则会出错,你可以做成Dll,别忘了加 on error resume next