win32_API里的WM_KEYDOWN和WM_KEYUP

近期关于win32_API里的WM_KEYDOWN和WM_KEYUP的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯 ,并进行了系统化的梳理 。若这些内容恰好能为您提供参考,将是我们最大的荣幸。

持续按住一个键不放是产生多个WM_KEYDOWN,最后只产生一个WM_KEYUP ,你的timer无法被处理是因为WM_TIMER在消息队列中的优先级别很低,你按下键的时候在不断地向窗口发送WM_KEYDOWN消息,所以timer的消息处理不到 ,解决方法是在消息循环里做手脚,如果按下了一个键而没有弹起的话,就忽略之后的按键消息 ,这样就能腾出时间来处理timer了:

#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)

{

WNDCLASS ws;

ws.style = CS_HREDRAW | CS_VREDRAW;

ws.lpfnWndProc = WndProc;

ws.cbClsExtra = 0;

ws.cbWndExtra = 0;

ws.hInstance = hInstance;

ws.hIcon = LoadIcon(NULL, IDI_APPLICATION);

ws.hCursor = LoadCursor(NULL, IDC_ARROW);

ws.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);

ws.lpszMenuName = NULL;

ws.lpszClassName = "Timer";

if(!RegisterClass(&ws))

return 0;

HWND hwnd = CreateWindow("Timer",

NULL,

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

CW_USEDEFAULT,

CW_USEDEFAULT,

CW_USEDEFAULT,

NULL,

NULL,

hInstance,

NULL);

ShowWindow(hwnd, iCmdShow);

UpdateWindow(hwnd);

MSG msg;

bool hold = false;

while(GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage(&msg);

if(msg.message == WM_KEYDOWN && !hold)

{

hold = true;

DispatchMessage(&msg);

}

else if(msg.message == WM_KEYDOWN)

; // 忽略多余的按键

else if(msg.message == WM_KEYUP)

{

hold = false;

DispatchMessage(&msg);

}

else

DispatchMessage(&msg);

}

return msg.wParam;

}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{

static TCHAR szBuf[32];

HDC hdc;

TEXTMETRIC tm;

static UINT key;

static int cyChar, i = 1;

switch(message)

{

case WM_CREATE:

hdc = GetDC (hwnd) ;

GetTextMetrics (hdc, &tm) ;

cyChar = tm.tmHeight + tm.tmExternalLeading ;

ReleaseDC (hwnd, hdc) ;

return 0;

case WM_KEYDOWN:

key = wParam;

SetTimer(hwnd, 1, 1000, NULL);

InvalidateRect(hwnd, NULL, TRUE);

return 0;

case WM_TIMER:

hdc = GetDC(hwnd);

TextOut(hdc, 0, 0, szBuf, wsprintf(szBuf, "Key: '%c' %d sec", key, i++));

ReleaseDC(hwnd, hdc);

return 0;

case WM_KEYUP:

hdc = GetDC(hwnd);

i = 1;

TextOut(hdc, 0, cyChar, szBuf, wsprintf(szBuf, "Done!"));

ReleaseDC(hwnd, hdc);

KillTimer(hwnd, 1);

return 0;

case WM_DESTROY:

PostQuitMessage(0);

return 0;

}

return DefWindowProc(hwnd, message, wParam, lParam);

}

关于win32_API里的WM_KEYDOWN和WM_KEYUP的相关内容介绍到此告一段落 ,若这些信息对您有所启发,欢迎持续关注本站获取更多优质内容。

本文来自作者[繡譽自限慣]投稿,不代表旋风格立场,如若转载,请注明出处:https://xfg666.cn/wenzhang/731.html

(52)

文章推荐

  • 仿真火焰取暖器好用吗

    网上有关“仿真火焰取暖器好用吗”话题很是火热,小编也是针对仿真火焰取暖器好用吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。仿真火焰取暖器好用。仿真火焰版的取暖器,让你在视觉上和体感上双重享受,石墨烯的发热体,让温暖快速充满房间,智能化的控制,开门就可以享受

    2025年09月18日
    55304
  • 玩家实测!微信小程序跑得快拿好牌软件”(怎么能调好牌)

    认准官方唯一联系方式客服24小时在线 ~点我获取客服联系方式~       亲,微乐麻将辅助软件这

    2025年11月16日
    21315
  • 必备绝技“微信小程序麻将怎么控制输赢”开挂(透视)辅助教程

    必备绝技“微信小程序麻将怎么控制输赢”开挂(透视)辅助教程>>亲,微信小程序麻将怎么控制输赢这款游戏原来确实可以开挂,详细开挂教程1、起手看牌2、随意选牌3、控制牌型4、注明,就是全场,公司软件防封号、防检测、 正版软件、非诚勿扰。2022首推

    2025年11月18日
    17313
  • 重大发现“微乐卡五星辅助器免费版(透视)”确实可以开挂

    重大发现“微乐卡五星辅助器免费版(透视)”确实可以开挂您好:微乐卡五星辅助器免费版这款游戏可以开挂,确实是有挂的,很多玩家在小程序雀神麻将开挂这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这

    2025年11月19日
    21300
  • 最新教你“聚友合集有挂吗”开挂详细教程

    最新教你“聚友合集有挂吗”开挂详细教程亲,聚友合集有挂吗这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的通过添加客服微:本司针对手

    2025年11月19日
    18308
  • 辅助开挂工具“微乐跑得快小程序必赢神器”分享用挂教程

    辅助开挂工具“微乐跑得快小程序必赢神器”分享用挂教程>>您好:微乐跑得快小程序必赢神器,软件加微信【】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是

    2025年11月23日
    18312
  • 必看教程“老友沈阳麻将到底有挂么(透视)”确实可以开挂

    必看教程“老友沈阳麻将到底有挂么(透视)”确实可以开挂老友沈阳麻将到底有挂么是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加入我们(QQ群聊)免费测试,先看效果下载使用。手机打牌可以一键让你轻松成为“必赢”。其操作方式十分简单,打开这个应用便可以自

    2025年11月27日
    15316
  • 必备绝技“中至鄱阳辅助(透视)”确实可以开挂

    必备绝技“中至鄱阳辅助(透视)”确实可以开挂>>您好:中至鄱阳辅助,软件加微信【】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的,添加***

    2025年11月27日
    13320
  • 最新教你“牌乐门麻将有挂吗”开挂详细教程

    最新教你“牌乐门麻将有挂吗”开挂详细教程>>亲,牌乐门麻将有挂吗这款游戏原来确实可以开挂,详细开挂教程1、起手看牌2、随意选牌3、控制牌型4、注明,就是全场,公司软件防封号、防检测、 正版软件、非诚勿扰。2022首推。全网独家,诚信可靠,无

    2025年11月28日
    13318
  • 教程分享“全民比鸡开挂辅助”最新辅助详细教程

    教程分享“全民比鸡开挂辅助”最新辅助详细教程 您好:全民比鸡开挂辅助这款游戏是可以开挂的,软件加微信【添加图中***群】确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上

    2025年12月09日
    1304

发表回复

本站作者才能评论

评论列表(3条)

  • 繡譽自限慣的头像
    繡譽自限慣 2025年12月10日

    我是旋风格的签约作者“繡譽自限慣”

  • 繡譽自限慣
    繡譽自限慣 2025年12月10日

    本文概览:近期关于win32_API里的WM_KEYDOWN和WM_KEYUP的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯,并进行了系统化的梳理。若这些内容恰好能为您提供参考,...

  • 繡譽自限慣
    用户121001 2025年12月10日

    文章不错《win32_API里的WM_KEYDOWN和WM_KEYUP》内容很有帮助

联系我们

邮件:旋风格@gmail.com

工作时间:周一至周五,9:30-17:30,节假日休息

旋风格