vb.net拦截鼠标 vb控制鼠标点击

vb.net中如何禁用键盘和鼠标

很简单,你怎么不先问我,还在这提问。用api函数,钩子,设置成全局钩子,然后对钩取来的message消息不做处理,也不返回,这样屏蔽了键盘了。钩子函数api好像是什么hook的那个,还有钩子函数的返回函数,以整个自定义函数的指针作参数

创新互联是一家专注于成都网站制作、网站设计与策划设计,洛隆网站建设哪家好?创新互联做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:洛隆等地区。洛隆做网站价格咨询:18982081108

VB.NET怎么可以限制窗体不能被鼠标随便拖动位置

很简单,通过WindowsAPI,删除窗体菜单项就行了

首先在窗体类中声明API:

Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As IntPtr, ByVal bRevert As Boolean) As IntPtr

Declare Function RemoveMenu Lib "user32" (ByVal lngHmenu As IntPtr, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer

其次声明API参数常量:

Const MF_BYPOSITION As Integer = H400

然后在窗体类中写入过程:

Private Sub UserForm_Initialize_stopmove() '禁止窗体移动

  Dim lngHwnd As IntPtr

  Dim lngHmenu As IntPtr

  lngHwnd = Me.Handle

  If lngHwnd 0 Then

      lngHmenu = GetSystemMenu(lngHwnd, False)

      RemoveMenu(lngHmenu, 0, MF_BYPOSITION) '这里的0代表菜单中从上往下数第一个菜单项

  End If

End Sub

Private Sub UserForm_Initialize_onmove() '恢复窗体移动

  Dim lngHwnd As IntPtr

  Dim lngHmenu As IntPtr

  lngHwnd = Me.Handle

  If lngHwnd 0 Then

      lngHmenu = GetSystemMenu(lngHwnd, True)

RemoveMenu(lngHmenu, 0, MF_BYPOSITION) '这里的0与禁止代码中的数值同步,原因时虽然表面上删除了菜单项,实则为隐藏了菜单项,各个菜单的索引值并没有变,所以0依然代表初始菜单的第一个菜单项,即被删除的那个菜单项

  End If

End Sub

然后如果你的窗口菜单是动态变化的,建议声明常数:

Const MF_BYPOSITION As Integer = H0

然后使用相关的Windows功能的常数进行删除菜单。常数需要自行查看winuser.h头文件

如果找不到该头文件,可以看这里:网页链接

其余信息详见MSDN:网页链接

最后说一下,不建议前面网友说的重写WndProc的方法,因为这样拦截标题栏点击消息会导致窗体本身的菜单也无法显示出来,有损窗体功能,并且像双击左上角图标关闭窗体这样的功能也会跟着拦截消息的操作一起被吞掉。

vb.net屏蔽鼠标和键盘的问题

VB.net可以调用DLL吗?如果可以的话,你用VB6.0编写一个DLL给VB.NET调用就行了


网站题目:vb.net拦截鼠标 vb控制鼠标点击
网站地址:http://bzwzjz.com/article/dodieeo.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站建设 网站制作 网站设计制作报价 成都定制网站建设 企业手机网站建设 成都网站设计 教育网站设计方案 手机网站建设套餐 网站设计公司 成都企业网站建设 手机网站制作 泸州网站建设 专业网站建设 网站建设 四川成都网站设计 自适应网站设计 网站建设方案 app网站建设 攀枝花网站设计 成都定制网站建设 成都商城网站制作 企业网站设计