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

(8)

文章推荐

  • 口袋妖怪最强进化3.0戴欧旗旗斯怎么抓

    网上有关“口袋妖怪最强进化3.0戴欧旗旗斯怎么抓”话题很是火热,小编也是针对口袋妖怪最强进化3.0戴欧旗旗斯怎么抓寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、口袋妖怪最强进化3.0迪奥西斯在诞生之岛上,岛上那个三角形需要不停的移动,直到它变红。要领就是

    2025年09月14日
    8307
  • 百度糯米网怎么样

    网上有关“百度糯米网怎么样”话题很是火热,小编也是针对百度糯米网怎么样寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1、原糯米网定位于“本地精品生活指南”,为商家创造“精准营销平台”,是社交化电子商务领域中的“精品版”,实现用户、商家和网站的三赢局面。糯米网

    2025年09月15日
    13311
  • 辽宁卫视完美告白为什么停播

    近期关于辽宁卫视完美告白为什么停播的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯,并进行了系统化的梳理。若这些内容恰好能为您提供参考,将是我们最大的荣幸。辽宁卫视完美告白为什么停播最近死人太多,翻船事故,停播娱乐节目完美告白为什么不要对别人的人生态度挑三拣四。你不是观众,所以

    2025年09月16日
    10306
  • 作者为什么要记念刘和珍君

    近期关于作者为什么要记念刘和珍君的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯,并进行了系统化的梳理。若这些内容恰好能为您提供参考,将是我们最大的荣幸。在《记念刘和珍君》中,作者主要写了她的三件事.一是她虽然生活比较困难,但是她思想要求进步,追求真理,崇敬鲁迅,喜欢读鲁迅的文章,所以她毅然预

    2025年09月19日
    15314
  • BS开头的车牌是什么机构?

    近期关于BS开头的车牌是什么机构?的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯,并进行了系统化的梳理。若这些内容恰好能为您提供参考,将是我们最大的荣幸。BS开头的车牌其中B代表北京军区,S代表部门。2012新式军车号牌的首位字母是号牌字头,为汉语拼音,代表所属军队部门。比如,第一位空军使用

    2025年09月20日
    10303
  • 武汉城市介绍旅游景点攻略 武汉城市介绍旅游景点攻略

    武汉城市介绍旅游景点攻略武汉城市介绍旅游景点攻略武汉城市介绍旅游景点攻略武汉城市介绍旅游景点攻略相关话题近期引发广泛关注,我们特别整理了多维度信息,希望能为您提供有价值的参考。武汉有哪些旅游攻略景点?_武汉旅游景点有武汉海昌极地海洋公园、武汉万达汉秀、锦里沟、袋鼠玩趣城、东湖游船、黄鹤楼、

    2025年09月22日
    9301
  • 英国留学 留学语言学校的基本介绍

    网上有关“英国留学留学语言学校的基本介绍”话题很是火热,小编也是针对英国留学留学语言学校的基本介绍寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。英国有许多语言学校提供各种语言课程,每年来到英国参加各类语言课程的人超过数十万人,其中一部分人在语言课程结束后

    2025年09月22日
    6316
  • 浙江女留学生接连被骗500多万

    关于浙江女留学生接连被骗500多万的讨论正在各大平台持续发酵,我们精心筛选了最新资讯,希望能为您带来实质性的帮助。97年女留学生被爆涉嫌诈骗,留下四十万美金债务。夏敏带你看看这是怎么回事儿。结婚后半年,枕边人突然变成骗子,伪造现金支票诈骗、骗钱、骗车、疑似盗刷信用卡,还都是从自己的兄弟、朋友下手。

    2025年09月26日
    8308
  • 大康农业如何投资股票才能获利?

    关于大康农业如何投资股票才能获利?的讨论正在各大平台持续发酵,我们精心筛选了最新资讯,希望能为您带来实质性的帮助。大康农业是一个新兴的行业,它的发展前景非常广阔,也吸引了许多投资者的关注。但是,如何投资大康农业的股票才能获利?本文将为您介绍大康农业投资股票的方法,希望能够帮助您获得投资收益。一、

    2025年09月29日
    4314
  • 可以4年不换够轻够薄高颜值的轻薄本有哪些?

    关于可以4年不换够轻够薄高颜值的轻薄本有哪些?的讨论正在各大平台持续发酵,我们精心筛选了最新资讯,希望能为您带来实质性的帮助。近年来,轻薄本越来越受到消费者的青睐,因为它们不仅外观优美,而且轻巧、便携。对于那些需要长时间携带笔记本的人来说,轻薄本成为了他们的首选。下面推荐几款不仅优美轻薄,而且耐用

    2025年09月30日
    9304

发表回复

本站作者才能评论

评论列表(3条)

  • 繡譽自限慣的头像
    繡譽自限慣 2025年09月21日

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

  • 繡譽自限慣
    繡譽自限慣 2025年09月21日

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

  • 繡譽自限慣
    用户092108 2025年09月21日

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

联系我们

邮件:旋风格@gmail.com

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

旋风格