#pragma once
#include <boost/thread.hpp>
#include <boost/asio.hpp>
#include <functional>
/*
功能:延迟一段时间调用SendMessage发送Windows消息
测试环境:
[1]VS2013 Sp3
[2]boost 1.56
使用方式:
Step1:把CDelayEvent属性化为当前类成员。
Step2:在任意地方调用,例子如下
m_delayEvent.SendMessage(::SendMessage, GetSafeHwnd(), WM_MYUPDATEVIEW, 0, 0, 0);
可重复调用。
N次调用,会有N个事件等待执行。
Step3:
然后延迟一段时间后,SendMessage函数就会被调用。
*/
namespace kagula
{
typedef std::function<long (const HWND hwnd, const UINT msg,
const WPARAM wParam, const LPARAM lParam)> Callback;
class CDelayEvent
{
public:
CDelayEvent();
~CDelayEvent();
void SendMessage(Callback callback, const HWND hwnd, const UINT msg,
const WPARAM wParam=0, const LPARAM lParam=0, int millisecond=1000/30);
private:
boost::asio::io_service _service;
/*
if no _work object, after all thing done, the _service.run will continue
then thread will end.
*/
b
延迟一段时间调用SendMessage发送Windows消息
最新推荐文章于 2024-01-10 09:55:23 发布
本文介绍了如何利用Windows API中的SetTimer函数来设置一个定时器,达到延迟调用SendMessage函数发送特定消息的目的。通过这种方法,可以在指定的时间间隔后执行特定的操作,增强了程序的响应性和用户体验。
摘要由CSDN通过智能技术生成