《大侠来帮忙》在用户自定义控件中如何屏蔽一个子控件的鼠标的右键!

Intel8088 2004-12-25 03:12:27
在用户自定义控件中如何屏蔽一个子控件的鼠标的右键!

谢谢!
...全文
127 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Intel8088 2004-12-29
  • 打赏
  • 举报
回复
maybelian(maybelian)兄的方法我试过是可以拦截子控件(比如:文本框)的右键消息。谢谢啦!不过我的这个控件(PDF.ocx)还是不能拦截。能不能再帮我看看,不过结账先!
xinminhuibaobao 2004-12-28
  • 打赏
  • 举报
回复
恩,恩,呵呵。拦截系统消息。就这方法。
maybelian 2004-12-28
  • 打赏
  • 举报
回复
ButtonNative = New MyNativeWindow"的ButtonNative是如何东西!
ButtonNative是MyNativeWindow类的实例啊,名字随便你取啊,你乐意叫什么名就叫什么名字
mingpingzhang 2004-12-27
  • 打赏
  • 举报
回复
private sub usercontrol_mousedown(...........)handle usercontrol.mousedown
if e.button=right then
return
end if
end sub
Intel8088 2004-12-27
  • 打赏
  • 举报
回复
谢谢上面各位的回答!

但:
Public Sub New()
MyBase.New()
ButtonNative = New MyNativeWindow
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
ButtonNative.AssignHandle(Me.Button1.Handle)
'在 InitializeComponent() 调用之后添加任何初始化
End Sub
中的"ButtonNative = New MyNativeWindow"的ButtonNative是如何东西!
maybelian 2004-12-26
  • 打赏
  • 举报
回复
landlordh的方法只能屏蔽自定义控件本身的消息,而无法屏蔽自定义控件中包含的子控件的消息
landlordh 2004-12-26
  • 打赏
  • 举报
回复

Public Const WM_RBUTTONDOWN = &H204
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = WM_RBUTTONDOWN Then
msgbox("屏蔽鼠标的右键")
Exit Sub
Else
MyBase.WndProc(m)
End If
End Sub
maybelian 2004-12-26
  • 打赏
  • 举报
回复
给你介绍一个类NativeWindow可以实现窗口过程的低级封装(只要提供窗口句柄)
1.你可以从NativeWindow派生一个类,重写其WndProc方法,代码如下:
Public Class MyNativeWindow
Inherits NativeWindow
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_LBUTTONDOWN = &H201
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = WM_RBUTTONDOWN Then
Exit Sub
Else
MyBase.WndProc(m)
End If
End Sub
End Class
2.在自定义控件类中添加一个私有域private SubControlWindow as MyNativeWindow
3.在自定义控件类的初始化函数中初始化SubControlWindow,
并调用SubControlWindow.AssignHandle方法,参数为你向屏蔽消息的子控件句柄,
举例代码如下:
Public Sub New()
MyBase.New()
ButtonNative = New MyNativeWindow
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
ButtonNative.AssignHandle(Me.Button1.Handle)
'在 InitializeComponent() 调用之后添加任何初始化
End Sub
这样你这要给定窗口句柄,就可以实现任何控件的消息低级封装了
Intel8088 2004-12-25
  • 打赏
  • 举报
回复
咱们把它顶上去!嘿!!
fangyifeng 2004-12-25
  • 打赏
  • 举报
回复
我现在也 在等待这个答案

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧