文本框即系统自带Ctrl+V的粘贴功能,而这一功能比我自已用菜单做的粘贴事件的优先级要高,而程序中我必须对将要粘贴过来的文本进行控制,不知该如何实现?
解决方案 »
- vba中的窗体导到VB6中后发现在设计器中,然后其中的控件不能被复制到别的窗体中,怎么办
- update 操作两个表的更新语句如何写才能正确执行
- 用Line Input读取txt文件,为什么第一个字符为乱码?
- 高分求答案!!! 十万火急!!!!
- 有偿帮忙!!!如何通过VB访问Access数据库!!!
- 来看看这个问题,把网上的jsp文件保存为本地的html文件?
- 下面的统计用SQL Server怎么写?急
- Internet Transfer 能使用http协议下载二进制文件吗?
- real server启动!real produce 正常显示视频!我如何可以看到网上直播!(pnm://pc05/encoder/testnow.rm)
- 在VB中显示超大图片怎么办?
- 非用户区的消息怎么取得。像mshflexgrid 调整行列的宽度。
- 怎样把winsock控件通讯模式设成阻塞模式
在keydown,keyup中拦截keycode = v 不行.
看来只有用字类了.
窗体代码:
Option ExplicitPrivate Sub Form_Load()
Call Hook(Text1.hWnd)
End SubPrivate Sub Form_Unload(Cancel As Integer)
Unhook
End Sub添加一个模块~
模块代码:
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 Const GWL_WNDPROC = (-4)Global lpPrevWndProc As Long
Global gHW As Long
Public Sub Hook(ChWnd As Long)
gHW = ChWnd
lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, AddressOf gWindowProc)
End SubPublic Sub Unhook()
Dim temp As Long
temp = SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc)
End SubPublic Function gWindowProc(ByVal hWnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = 770 Then
'在这里调用你的处理函数
gWindowProc = True
Else ' Send all other messages to the default message handler
gWindowProc = CallWindowProc(lpPrevWndProc, hWnd, Msg, wParam, lParam)
End If
End Function
你想不让他出现右键菜单,WM_CONTEXTMENU = &H7B 用这个常数去做判断条件就行了(这是对于标准的Windows控件TextBox来说的)!
至于RichTextBox那东西的,它是不是用这个值我不知道.但你想要那个值就把那些IF语句先注释起来~用Debug.print msg 触发它的事件看看输出窗口就知道!当然,其中还包括很多其它消息!那得知己去判断了~!