最近再看一些关于Hook方面的知识,这是一个线程钩子的实例(来源互联网):

步骤:

一、新建一个不使用文档/视结构的单文档应用hook1。打开childview.cpp文件,加入全局变量:

[cpp]HHOOK hHook;//鼠标钩子句柄

CPoint point;//鼠标位置信息

CChildView *pView;//鼠标钩子函数用到的输出窗口指针 [/cpp]

二、在CChildView::OnPaint()添加如下代码:

[cpp]CPaintDC dc(this); // 用于绘制的设备上下文

CString str;

str.Format(_T("x=%d,y=%d by:cplusplus.me"),point.x,point.y);

dc.TextOut(200,200,str); //显示字符串[/cpp]

三、在childview.cpp文件中定义全局的鼠标钩子函数。

[cpp]LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)

{//是鼠标移动消息

if(wParam==WM_MOUSEMOVE||wParam

==WM_NCMOUSEMOVE)

{

point=((MOUSEHOOKSTRUCT *)lParam)->pt;

//取鼠标信息

pView->Invalidate(); //窗口重画

}

return CallNextHookEx(hHook,nCode,wParam,lParam);

//传递钩子信息

}

[/cpp]

四、CChildView类的构造函数中安装钩子。

[cpp]pView=this;//获得输出窗口指针

hHook=SetWindowsHookEx(WH_MOUSE,MouseProc,0,GetCurrentThreadId()); [/cpp]

五、CChildView类的析构函数中卸载钩子。

[cpp]if(hHook)

UnhookWindowsHookEx(hHook); [/cpp]

运行结果:

hook1

c 语言鼠标钩子,线程钩子(鼠标钩子) | C/C++程序员之家相关推荐

  1. 用c语言写出一个榜单程序,C语言依然位居榜单前列,依然值得程序员学习

    原标题:C语言依然位居榜单前列,依然值得程序员学习 关注.星标公众号,不错过精彩内容 如今,市面上编程语言几百种,很多人觉得Python. JAVA这种语言比较火,是不是C语言就不行了呢? 殊不知,C ...

  2. C语言依然位居榜单前列,依然值得程序员学习

    关注.星标公众号,不错过精彩内容 如今,市面上编程语言几百种,很多人觉得Python. JAVA这种语言比较火,是不是C语言就不行了呢? 殊不知,C语言依然是现在的主力军. 一.编程语言排行榜 给大家 ...

  3. 由于不知线程池的bug,某Java程序员叕被祭天

    说说你对线程池的理解? 首先明确,池化的意义在于缓存,创建性能开销较大的对象,比如线程池.连接池.内存池.预先在池里创建一些对象,使用时直接取,用完就归还复用,使用策略调整池中缓存对象的数量. Jav ...

  4. 移动端开发语言的未来的猜想#华为云·寻找黑马程序员#

    [摘要] #华为云.寻找黑马程序员# 不管是最早的Phonegap,还是后来的React Native.Weex,Flutter,或者是各个公司自创开发语言,都是在不断寻求开发语言统一,从而解决ios ...

  5. c++语言表白超炫图形_让C/C++程序员告诉你什么叫浪漫,表白黑科技,炫酷多彩求爱利器...

    原标题:让C/C++程序员告诉你什么叫浪漫,表白黑科技,炫酷多彩求爱利器 前言 缘是美丽的邂逅,爱是心跳的感觉,情是心灵的交会,恋是甜蜜的思念,走在爱与被爱的边缘,你见或者不见,爱你的心始终不改变!C ...

  6. 学python语言用什么软件-只会用 Python 的程序员应该学什么语言?

    大学系统的学过 C 和 java ,工作只用过一次 C , Java 完全没用过.不能算会用吧,但是有基础.现在在北美某 startup 做 Python ,主要是用 Tornado + Redis ...

  7. C语言中如何把位赋值给字节,优秀程序员必须知道的20个位运算技巧

    一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读&l ...

  8. 我的Go+语言初体验——环境搭建篇(直男程序员的真实体验)

    目录 前言 官网体验 环境搭建 总结 前言 当我第一眼看到这个活动的时候,吸引我的不是所谓的奖励,而是活动文章中的"填补了国人开发者在数据科学领域的空白",很有志气的一句话,我喜欢 ...

  9. c语言coin函数库,Coin Test | C/C++程序员之家

    Coin Test 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 As is known to all,if you throw a coin up and let i ...

  10. c++语言读取excel文件,C++读取Excel文档(CSV) | C/C++程序员之家

    C++直接读取Excel文档比较麻烦,这里用了一直取巧的方式(因为紧紧是处理一些URL).首先把.xls格式另存为.csv格式,然后就可以直接读取文件了. Excel文档形式如下: csv C++代码 ...

最新文章

  1. 深度学习之父Hinton:下一代神经网络
  2. python读取压缩包中csv文件
  3. MapReduce1.x与MapReduce2.x差异
  4. 探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探
  5. mysql-数据库表优化
  6. 客户端与服务器端地址的区别
  7. 中文表示什么_中文分词是个伪问题
  8. 怪物猎人物语稀有9星_怪物猎人崛起武器怎么锻造 武器锻造机制介绍
  9. 如何更新linux系统时间
  10. java.util.ConcurrentModificationException的解决办法
  11. github下载的代码、怎么使用 python_Python学习20-补充内容之GitHub安装使用
  12. 让IE6支持min-width和max-width的方法
  13. 电脑重装系统后Win11扬声器无插座信息如何解决?
  14. selenium入门详细指南(附淘宝抢购案例)
  15. 福玛特机器人评测_离子净化!福玛特E-R350W扫地机器人试玩
  16. 操作系统-进程调度实验报告
  17. 李宏毅2021/2022春机器学习课程(机器学习基本概念简介)
  18. Java网络爬虫(三)爬取网络小说
  19. 软件项目研发过程中阶段划分和工作方法
  20. CSAPP:MallocLab

热门文章

  1. 畅捷教育系统服务器,畅捷教育云平台使用手册一、学生操作流程图-畅捷通.PDF...
  2. 计算信源熵和香农编码C语言,Word版可编辑-信息论与编码课程设计报告统计信源熵与香农编码精心整理.doc...
  3. 同济大学高等数学下册第八章向量代数与空间解析几何以及每日一题
  4. Hutool使用总结(VIP典藏版)
  5. 小程序 图片加载慢卡
  6. android 不同机型 bug,[Android] Opengl ES 机型适配 bug 汇总
  7. HTML基础标签和基本CSS行内样式
  8. LED产品认证和检测
  9. 浅谈电子商务网站购物车
  10. 社区计算机基础知识,社区计算机基础知识试题及答案.doc