在VB.net中怎么获取 鼠标在屏幕中的坐标Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Long '全屏坐标声明
Private Declare Function ScreenToClient Lib "user32.dll" (ByVal hwnd As Int32, ByRef lpPoint As POINTAPI) As Int32 '窗口坐标声明
Private Structure POINTAPI '声明坐标变量
Public x As Int32 '声明坐标变量为32位
Public y As Int32 '声明坐标变量为32位
End Structure
'以上是声明部分
'以下是窗口部分
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick '用时钟控件来取坐标,窗口上放个Timer组件,Enabled为允许,周期为10到100毫秒均可
Dim P As POINTAPI '声明坐标变量
Dim xx, yy '声明转换要用到的变量
GetCursorPos(P) '获取鼠标在屏幕中的位置
ScreenToClient(Me.Handle.ToInt32, P) '转换为本窗体的坐标
xx = P.x.ToString '把X转换成能显示到文本框的字符串格式
yy = P.y.ToString '把Y转换成能显示到文本框的字符串格式
TextBox1.Text = xx + "和" + yy '文本框的内容为X坐标和Y坐标
End Sub
求VB.NET怎么捕捉系统鼠标当前状态?如:打开文件等待时的漏斗状态,或双箭头的可拉伸状态,谢谢 。me.Cursor.ToString()
或者可以枚举
me.cursor=Cursors.WaitCursor之类的
不过有以下局限:
自定义指针无法识别
窗口处于非激活状态可能无效
与其他控件可能冲突
VB.net怎样按住鼠标移动无边框窗体1.在mouse事件中实现
2.调用windows API
实现方式为:
1.在mouse事件中实现
[csharp] view plain copy
Point mouseOff;//鼠标移动位置变量
bool leftFlag;//标签是否为左键
private void groupControl1_MouseUp(object sender, MouseEventArgs e)
{
if (leftFlag)
{
leftFlag = false;//释放鼠标后标注为false;
}
}
private void groupControl1_MouseMove(object sender, MouseEventArgs e)
{
if (leftFlag)
{
【vb.net捕捉鼠标 vb如何控制鼠标】Point mouseSet = Control.MousePosition;
mouseSet.Offset(mouseOff.X, mouseOff.Y);//设置移动后的位置
Location = mouseSet;
}
}
private void groupControl1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOff = new Point(-e.X, -e.Y); //得到变量的值
leftFlag = true;//点击左键按下时标注为true;
}
}
private void groupControl1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOff = new Point(-e.X, -e.Y); //得到变量的值
leftFlag = true;//点击左键按下时标注为true;
}
}
2.调用windows API
调用前需要添加using System.Runtime.InteropServices;
[csharp] view plain copy
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
private void groupControl1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture(); //释放鼠标捕捉
//发送左键点击的消息至该窗体(标题栏)
SendMessage(Handle, 0xA1, 0x02, 0);
}
}
如何通过vb.net WinForm窗体上画线条或弧线,让用户可以用鼠标捕捉(选中)已画的线条 。代码写起来可能比较麻烦 , 给你个思路,就是用GraphicsPath来绘制 , 然后通过绘制目标的鼠标移动事件来获取当前鼠标在绘制目标中的实际位置,再通过GraphicsPath的IsVisible()方法来确认鼠标是否包含在GraphicsPath中 。
DrawLine直线比较容易处理 , 只要得到Line的坐标点,然后比较当前鼠标坐标就好 。
推荐阅读
- word文字效果怎么设置,word文字效果怎么设置转换弯曲
- 日常vlog拍摄什么主题,日常vlog拍摄什么主题好
- 安卓8.0游戏没声音,安卓手机游戏没有声音
- flutter_wanandroid详解,flutterby
- c语言取整函数的方法 c语言取整函数怎么用
- koa使用mongodb数据库,mongodb数据库怎么使用
- 直播达人的标志是什么,网络直播达人
- 网站开发php,网站开发建站
- python字典中值函数 python字典value值类型