win32开发(鼠标)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】


    自从上一期说了键盘消息之后,我就在想怎么写好鼠标这一章。其实和键盘消息相比较,鼠标消息也不难。几乎不需要在ResourceView做什么操作,直接在WndProc添加case响应就可以了,比如说像这样,

			case WM_LBUTTONDOWN:
				break;

			case WM_LBUTTONUP:
				break;

    当然,上面的只是一份说明,我们总要写一点有意思的东西,比如说划线。这就是一个经常用来说明鼠标应用的例子。当让鼠标按下去的时候,记录一下鼠标的x、y坐标。等到鼠标返回的时候,再记录一下鼠标的坐标,利用这两个坐标画一条直线就可以了。为此,我们做了如下修改,

			case WM_LBUTTONDOWN:
				x = GET_X_LPARAM(lParam);
				y = GET_Y_LPARAM(lParam);
				break;

			case WM_LBUTTONUP:
				hdc = GetDC(hWnd);
				MoveToEx(hdc, x, y, NULL);
				LineTo(hdc, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
				ReleaseDC(hWnd, hdc);
				break;
    看上去也不是什么太复杂,为此,我们还需要定义一下x、y变量,且引用一下定义GET_X_LPARAM和GET_Y_LPARAM的头文件,

#include <windowsx.h>
int x = 0;
int y = 0;
    经过这两个步骤,基本上鼠标画线的流程就算完成了。但是美中不足的是,我们没有保存每次直线的位置,等到app最小化后恢复的时候,app上面所有的直线就消失了,这个时候app又会是白茫茫一片。所以,如果要想体验好的话,一定要记录直线坐标的位置,且在WM_PAINT的时候,重新将这些直线画出来。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式-老费

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值