C++ SetTimer

C++ SetTimer我搞了好久 最终也没成功的让SetTimer 回调一个非静态成员函数不过问题是解决了那就是把成员函数和要用到的那个成员变量换成静态了(有点拆东墙补西墙了)不过方法肯定是有的UINT_PTRSetTimer(HWNDhWnd,//窗口句柄UINT_PTRnIDEvent,//定时器ID,多个定时器

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定
我搞了好久 

最终也没成功的让SetTimer  回调一个非静态成员函数 只能通过定义一个高级的对象指针,通过普通回掉函数里面执行成员函数:)

不过问题是解决了

那就是 把成员函数 和 要用到的那个成员变量换成静态了(有点拆东墙补西墙了) 不过方法肯定是有的

举个栗子

public:
	static bool bulletlock;
	static void CALLBACK bulletinterval(HWND hWnd, UINT nMsg, UINT nTimerid, DWORD dwTime);   //普通回掉函数

Jetbrains全家桶1年46,售后保障稳定 这是给子弹限制速度的函数   就是发射间隔  其中用lock的形式实现的(我不会讲我实现还不完全)

		else if (kbd.SpaceIsPressed()&&(Game::bulletlock==true))
		{
				
				Game::bulletlock = false;
				Bullet *temp = getBuletState();
				PlayerBullet.push_back(temp);   //这两行就是发射子弹的 
				SetTimer(hWnd, 1, 2000, bulletinterval);
			
			//把子弹放进去		
		}

SetTimer原型

UINT_PTR SetTimer(
  HWND hWnd,              // 窗口句柄
  UINT_PTR nIDEvent,      // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器
  UINT uElapse,           // 时间间隔,单位为毫秒
  TIMERPROC lpTimerFunc   // 回调函数
);

第一个NULL的话  计时器第二个参数无效,这样需要一个UINT_PTR  iTimerID = SetTimer(….来保存这个计时器,删除的时候使用KillTimer(NULL,iTimerID)

Callback函数格式

void CALLBACK TimerProc
(
  HWND hWnd,
  UINT nMsg,
  UINT nTimerid,
  DWORD dwTime
);

最后别忘记删除SetTimer

KillTimer(HWND hWnd,uIDEvent)  
第一个是句柄 第二个是计时器ID,一次性计时器的话,KillTimer可以写在回掉函数中

void Game::bulletinterval(HWND hWnd, UINT nMsg, UINT nTimerid, DWORD dwTime)
{
	Game::bulletlock = true;
	KillTimer(hWnd, 1);
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/203456.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 你的Wi-Fi 还安全吗?全球重大漏洞WPA2 KRACK 详细分析报告

    你的Wi-Fi 还安全吗?全球重大漏洞WPA2 KRACK 详细分析报告近日,Wi-Fi加密协议被曝光存在重大安全漏洞,用于保护Wi-Fi网络安全的WPA2安全加密协议已被黑客破解。这种被称作“Krack”(密钥重装攻击)攻击意味着用户连接的绝大多数Wi-Fi已经不安全了,包括家中的路由器Wi-Fi,都存在被盗号的风险。攻击者可通过此漏洞获取万能密钥来访问WPA2网络,从而窃听用户的通讯信息。究竟这个漏洞是由哪些缺陷引起的?会对用户造成什么影响?作为技术人的我们,又…

  • 03_Hadoop架构

    03_Hadoop架构

  • JAVA生成uuid_oracle随机生成uuid

    JAVA生成uuid_oracle随机生成uuidUUID生成importjava.util.UUID;publicclassJavaUUIDTest{publicstaticvoidmain(String[]args){//未加工的UUIDStringpreUuid=UUID.randomUUID().toString();System.out.println(preUuid);//第一种方法生成UUID,去掉“-”符号

  • springboot实现查询手机号归属地

    springboot实现查询手机号归属地我也不知道咋写的,测试过了,反正能用就行;packagecom.example.needs.util;importorg.apache.http.HttpEntity;importorg.apache.http.ParseException;importorg.apache.http.client.methods.CloseableHttpResponse;importorg.apache.http.client.methods.HttpGet;importorg.apache.h

  • 使用 CountDownLatch 控制多个线程执行顺序

    使用 CountDownLatch 控制多个线程执行顺序

  • Python练手项目之微信机器人、恢复被撤回的微信消息

    Python练手项目之微信机器人、恢复被撤回的微信消息一个python练习项目。基于图灵机器人的微信自动回复工具,对接itchat恢复被撤回的消息。【程序功能】1、实现微信单聊/群聊自动回复。2、恢复被撤回的微信消息(通过手机助手发送到手机微信)【GitHub项目地址】]https://github.com/Liiking/WechatTool(含:源代码及打包好的Mac和Windows桌面应用程序)【下载体验地址】哆啦猫Mac版,…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号