当前位置: 首页 > news >正文

C语言学习day25:WinAPI编程进阶07-游戏辅助时钟周期事件、定时器消息

接下来我们说一下时间周期(定时器)事件

我们接下来继续用上一章中的代码来举例

这次课程我们需要用的函数=SetTimer()函数和KillTimer()函数

SetTimer()

语法:

UINT_PTR SetTimer(
  [in, optional] HWND      hWnd,
  [in]           UINT_PTR  nIDEvent,
  [in]           UINT      uElapse,
  [in, optional] TIMERPROC lpTimerFunc
);

参数一:

类型:HWND
要与计时器关联的窗口的句柄。 此窗口必须由调用线程拥有。 如果 hWnd 的 NULL 值与现有计时器的 nIDEvent 一起传入,则替换该计时器的方式与现有非 NULL hWnd 计时器相同。

参数二:

类型: UINT_PTR
非零计时器标识符。 如果 hWnd 参数为 NULL,并且 nIDEvent 与现有计时器不匹配,则忽略它并生成新的计时器 ID。

参数三:

类型: UINT
超时值(以毫秒为单位)。

参数四:

类型: TIMERPROC
指向在超时值过后要通知的函数的指针。 有关 函数的详细信息,请参阅 TimerProc。

代码:

// 添加全局变量
int g_State = 0;

case WM_KEYDOWN:
        if (GetAsyncKeyState(VK_F1) != 0)
        {
            if (g_State == 0)
            {
                // 开启时钟
                SetTimer(hwnd, 1, 2000, NULL);
                g_State = 1;
            }

KillTimer()

语法:

参数一:

类型:HWND
与指定计时器关联的窗口的句柄。 此值必须与传递给创建计时器的 SetTimer 函数的 hWnd 值相同。

参数二 :

类型: UINT_PTR
要销毁的计时器。 如果传递给 SetTimer 的窗口句柄有效,则此参数必须与 nIDEvent 相同
传递给 SetTimer 的值。 如果应用程序在 hWnd 设置为 NULL 的情况下调用 SetTimer,则此参数必须是 SetTimer 返回的计时器标识符。

代码

else
            {
                // 关闭时钟
                KillTimer(hwnd, 1);
                MessageBoxA(NULL,"已关闭","温馨提示",MB_OK);
                g_State = 0;
            }

此外:

我们还加了一个判定,用来处理时钟消息。以下代码也就是说,每隔2s弹出一个框

代码:

case WM_TIMER:
    {
        MessageBoxA(NULL, "开启成功", "温馨提示", MB_OK);
        break;
    }

 

相关文章:

  • 带宽计算公式
  • clickhouse源码分析
  • 顺序栈和链式栈的使用
  • 内存管理——页表、页表项、页目录、多级页表
  • 【大模型知识点】位置编码——绝对位置编码,相对位置编码,旋转位置编码RoPE
  • 【CXX】6.2 Rust::Str 公共 API
  • MySQL中的`JSON_EXTRACT`函数
  • Anthropic 平台升级,解锁 Claude3.7Sonnet 与 prompt 创作新玩法
  • SPI驱动(六) -- SPI_OLED上机实验(使用spidev)
  • 梯度计算中常用的矩阵微积分公式
  • 计算机网络----主要内容简介
  • Qwen2.5-7B-Instruct进行自我认知微调
  • HTTP 黑科技
  • 为什么会有结构体?
  • 《几何原本》命题I.25
  • PCIE接口
  • spring 和JVM之间关系
  • Go学习笔记
  • 【RAG】检索后排序 提高回答精度
  • 初识Linux
  • 网站域名证书/长春关键词优化平台
  • 企业网站 联系我们/百度seo网站优化
  • 十堰有做百度推广的吗/邯郸seo优化公司
  • 网站建设评价标准/黄山seo排名优化技术
  • 网页制作基础教程课件/南宁优化网站收费
  • 电子商务网站建设规划书/自己如何开网站