线程消息+HOOK+皮肤

1.线程的消息通讯

SendMessage 》》向窗口派发
PostMessage 》》向窗口派发
  • .向线程发消息:PostThreadMessage()

不是每个线程都能拥有消息队列, windows系统中,必须是UI线程,才能从系统中分配到一个属于线程自己的消息队列,
如果在线程回调函数中使用到了以下两个API,系统会认定该线程是一个UI线程: GetMessage(); CreateWindow();

  • 线程接收并处理消息

在线程回调函数中,在一个循环内,可通过采用PeekMessage()判断消息的方式,从消息队列中获取信息,当系统无消息时,返回FALSE,继续执行后续代码。
ps:GetMessage():从系统获取消息,将消息从系统中移除,属于阻塞函数。当系统无消息时,GetMessage会等待下一条消息。

2.HOOK

HOOK俗称钩子,它是一种介于消息和应用程序之间的一个必经之路,可以通过在系统中设置HOOK,在应用程序获得消息之前,提前截获应用程序的消息,并进行想要的处理。
SetWindowsHookEx
UnhookWindowsHookEx
CallNextHookEx

其他:

实现窗口类应用程序皮肤更换的基本思路 可选择在InitInstance()函数中设置钩子,HOOK
窗口类的过程函数,然后对窗口进行重绘,
控件的重绘虚函数:DrawItem虚函数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值