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的时候,重新将这些直线画出来。
win32开发(鼠标)相关推荐
- 跟我一起玩Win32开发
跟我一起玩Win32开发(1):关于C++的几个要点 我不知道各位,一提起 C++ ,第一感觉是什么?而据俺的观察,许多人几乎成了 " 谈 C 色变 " .不管是 C 还是 C++ ...
- GCC for Win32开发环境介绍
GCC for Win32开发环境介绍(1) 第一章 在视窗操作系统下的GCC 第一节GCC家族概览 GCC是一个原本用于Unix-like系统下编程的编译器.不过,现在GCC也有了许多Win32下的 ...
- win32开发(对话框启动)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 有过mfc开发经验的朋友都知道,在mfc下面有三种app开发的方式,它分别是mdi开发.sdi开 ...
- win32开发(画笔、刷子、字体)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 因为win32开发基本上都是和windows打交道,这些api其他的os也用不到,所以建议大家在 ...
- win32开发(调试)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 很多同学都喜欢看代码,但是不喜欢调试代码.其实,在我看来,调试代码本身也是一项重要的能力.一份代 ...
- 跟我一起玩Win32开发(4):创建菜单
跟我一起玩Win32开发(4):创建菜单 也不知道发生什么事情,CSDN把我的文章弄到首页,结果有不少说我在误人子弟,是啊,我去年就说过了,如果你要成为砖家级人物,请远离我的博客,我这个人没什么特长, ...
- 跟我一起玩Win32开发(5):具有单选标记的菜单
跟我一起玩Win32开发(5):具有单选标记的菜单 帅哥们,美女们,下午好,我又来误人子弟,请做好准备. 今天,我们的目的是,想要实现下图中的这种菜单效果. 就是一种类似单选按钮的菜单,多个菜单项中, ...
- 跟我一起玩Win32开发(25):监视剪贴板
跟我一起玩Win32开发(25):监视剪贴板 自从郭大侠和蓉儿离开桃花岛后,最近岛比较寂静,有一种"门前冷落鞍马稀"的感觉.于是,老邪就拿出<九阴真经>认真阅读,同时用 ...
- 玩转Win32开发(2):完整的开发流程
上一篇中我给各位说了一般人认为C++中较为难的东西--指针.其实对于C++,难点当然不局限在指针这玩意儿上,还有一些有趣的概念,如模板类.虚基类.纯虚函数等,这些都是概念性的东西,几乎每一本C++ ...
最新文章
- python数组写入txt文档_Python打开文件,将list、numpy数组内容写入txt文件中的方法...
- 数据库 第一、二、三范式
- 使用crypto模块实现md5加密功能(解决中文加密前后端不一致的问题)
- Winforn中实现ZedGraph自定义添加右键菜单项(附源码下载)
- 浅谈深度学习(Deep Learning)的基本思想和方法
- 工作293:新的打印操作
- java 安卓视频播放器_java - 学习做一个安卓视频播放器,有一些小问题!忘大家请教...
- 二叉树节点为某一值的路径
- 关于power shell
- python培训价目表-Python培训一般要多少钱?
- html js修改readonly,js控制html元素的readonly属性
- vue el-input输入框禁止输入空格
- wait放弃对象锁_Java线程:notify()和wait()示例
- 雷达系统与信号处理概述(一)
- 自制家谱制作软件怎么注册
- 2019第四次新生周赛——YZJ的牛肉干
- 【日常吐槽 · 第七期】进击的博客
- 国赛mysql加固_2019 全国大学生信息安全竞赛创新能力实践赛3道Web Writeup
- OpenCV—用meanshift和Camshift进行目标追踪
- win10中chrome浏览器书签路径