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);
}

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • as安装HAXM报错

    as安装HAXM报错解决办法:1.。查看电脑bios中是否开启intelvirtualtechnology2。打开sdkmanager安装intelx86RmulatorAccelerator(HAXM)

    2022年6月28日
    24
  • 苹果套路直播计算机隐藏版,套路计算器app,套路计算器隐藏官网版app预约 v1.0 – 浏览器家园…

    苹果套路直播计算机隐藏版,套路计算器app,套路计算器隐藏官网版app预约 v1.0 – 浏览器家园…套路计算器隐藏官网版app软件是一款最新人气计算器玩法,大家可以在这里发现非常多有趣的玩法,超级适合大家进行整蛊以及活跃气氛适应的,计算器里面会有各种好玩有趣的公式,帮你计算出各种想要的问题回答,非常类似于星座方面的玩法,说不定可以帮你解决你心中的各种问题疑问,如果你想尝试的话,就赶紧下载体验吧。套路计算器隐藏官网版app软件特色:1、玩法非常简单,输入自己的想要提的问题,就可以自动算出结果!2、…

    2022年4月30日
    548
  • PIP 更换国内安装源「建议收藏」

    PIP 更换国内安装源「建议收藏」pip国内的一些镜像  阿里云http://mirrors.aliyun.com/pypi/simple/  中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/  豆瓣(douban)http://pypi.douban.com/simple/  清华大学https://pypi.tuna.tsinghua.edu.cn/simpl…

    2022年6月4日
    29
  • Linux解压命令「建议收藏」

    Linux解压命令「建议收藏」1.压缩命令:  命令格式:tar -zcvf  压缩文件名.tar.gz  被压缩文件名     可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。 2.解压缩命令:  命令格式:tar -zxvf  压缩文件名.tar.gz  解压缩后的文件只能放在当前的目录。 3.Linux下如何解压tar.bz2文件             在l…

    2022年6月6日
    32
  • SVN提示update更新成功,但是本地文件却没有更新

    SVN提示update更新成功,但是本地文件却没有更新

    2021年10月20日
    43
  • vs2015激活码怎么用_vs2010激活码

    vs2015激活码怎么用_vs2010激活码VS2008简体中文正式版序列号1.VisualStudio2008ProfessionalEdition:XMQ2Y-4T3V6-XJ48Y-D3K2V-6C4WT2.VisualStudio2008TeamTestLoadAgent:WPX3J-BXC3W-BPYWP-PJ8CM-F7M8T3.VisualStudio2008TeamSystem:PYH

    2022年8月10日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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