网站首页 > 博客文章 正文
我知道你最近很累,是那种看不见的身体上精神上的以及对未来的那种无力感,但请一定要坚持下去。。。
---- 网易云热评
一、消息的获取
1、GetMessage:从系统获取消息,将消息从系统中移除,阻塞函数。当系统无消息时,GetMessage会等候下一条消息。
2、PeekMessage - 以查看的方式从系统获取消息,可以不将消息从系统移除,非阻塞函数。当系统无消息时,返回FALSE,继续执行后续代码。
BOOL PeekMessage(
LPMSG lpMsg, // 消息信息
HWND hWnd, // 消息句柄
UINT wMsgFilterMin, // 消息范围
UINT wMsgFilterMax, // 消息范围
UINT wRemoveMsg //移除标识
PM_REMOVE / PM_NOREMOVE
);
3、相关代码
void Message()
{
MSG nMsg = { 0 };
/*while (GetMessage(&nMsg, NULL, 0, 0))
{
TranslateMessage(&nMsg);
DispatchMessage(&nMsg);
}*/
while (true)
{
if (PeekMessage(&nMsg,NULL,0,0,PM_NOREMOVE))
{
//有消息
if (GetMessage(&nMsg, NULL, 0, 0))
{
//不是WM_QUIT
TranslateMessage(&nMsg);
DispatchMessage(&nMsg);
}
else
{//是WM_QUIT
return;
}
;
}//没有消息
else
{
//空闲处理
WriteConsole(g_接受句柄, L"哎呦", 6, NULL, NULL);;
}
}
}
二、消息的发送
1、SendMessage:发送消息,会等候消息处理的结果。
2、PostMessage:投递消息,消息发出后立刻返回,不等候消息执行结果。
WM_QUIT用到的就是这个
BOOL SendMessage / PostMessage(
HWND hWnd, //消息发送的目的窗口
UINT Msg, //消息ID
WPARAM wParam, //消息参数
LPARAM lParam //消息参数
);
三、消息的分类
1、系统消息:ID范围 0 - 0x03FF,由系统定义好的消息,可以在程序中直接使用。
2、 用户自定义消息:ID范围 0x0400 - 0x7FFF,由用户自己定义,满足用户自己的需求。由用户自己发出消息,并响应处理,自定义消息可以任何位置发送
自定义消息宏:WM_USER
#define WM_MYMESSAGE WM_USER+n
3、应用程序消息 - ID范围 0x8000 - 0xBFFF,程序之间通讯时使用的消息。,应用程序消息宏:WM_APP
4、系统注册消息 - ID范围 0xC000 - 0xFFFF,在系统注册并生成相应消息,然后可以在各个程序中使用这个消息。
5、相关代码
//定义消息宏
#define WM_MYMESSAGE WM_USER+1001
//发送消息
SendMessage(hWnd, WM_MYMESSAGE, 100, 200);//窗口之前就出来
//PostMessage(hWnd, WM_MYMESSAGE, 100, 200);//窗口之后才出来
//消息处理内容
void 自定义消息(HWND hWnd,WPARAM wParam,LPARAM lPaerm)
{
wchar_t str[256] = { 0 };
swprintf_s(str, L"自定义消息被处理了:%d", lPaerm);
MessageBox(hWnd, str, L"哎呦", MB_OK);
}
case WM_MYMESSAGE:
自定义消息(hWnd, wParam, lParam);
break;
6、运行结果
欢迎关注公众号:顺便编点程
?
?
- 上一篇: vue 如何实现跨域
- 下一篇: 前端跨浏览器标签页数据共享解决方案
猜你喜欢
- 2024-12-02 学习Windows消息机制
- 2024-12-02 iframe嵌入页面实现免登录
- 2024-12-02 简单易懂的大文件上传教程:Vue3与.NET 6完美结合
- 2024-12-02 高频面试题:JavaScript事件循环机制解析
- 2024-12-02 大文件上传实践分享
- 2024-12-02 如何解决iframe跨域问题?这些解决方案可以有效满足你的业务场景
- 2024-12-02 2.1.3-4窗口消息
- 2024-12-02 win32编程 -- 消息机制(一)
- 2024-12-02 HttpClient使用指南——POST请求
- 2024-12-02 最新HTML BroadcastChannel API简介
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)