winapi检测鼠标是否在任务栏

        若想知道鼠标当前是否在任务栏,需要知道两点:

  1. 鼠标当前坐标
  2. 任务栏所处坐标位置

        一般情况下鼠标当前坐标位置会由调用方传过来,所以这里只给出任务栏区域位置。代码如下:

int main()
{
	int a, b, c, d, x, y;
	RECT rt;
	
	x = GetSystemMetrics(SM_CXSCREEN);
	y = GetSystemMetrics(SM_CYSCREEN);
	printf("屏幕坐标: x = %d, y = %d\n", x, y);

	SystemParametersInfo(SPI_GETWORKAREA, 0, &rt, 0);
	a = rt.top;
	b = rt.bottom;
	c = rt.left;
	d = rt.right;
	printf("上下坐标: top = %d, bottom = %d\n", a, b);
	printf("左右坐标: left = %d, right = %d\n", c, d);

	return 0;
}

        此处主要用到 GetSystemMetrics()SystemParametersInfo() 两个方法,调用时需要引入 windows.h 头文件,感兴趣的可以自行搜索相关文档。执行结果如下:

        由此可见,当鼠标坐标参数传过来时,如果纵坐标如 y > 960,就可以认为鼠标在任务栏了。但这仅限于任务栏在桌面下方的情况,如果在桌面顶部、或左侧、或右侧时,就需要调整相应的判断条件了。

        以上。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值