MSG结构的用途是什么?它的参数代表什么
what is the use of MSG structure and what are it parameters stands for?
我是vc++的新手,正在创建一个win32窗口应用程序。我在我的视觉工作室中创建了默认项目。在浏览代码时,我发现了MSG msg;
。我搜索了很多关于它的用途和参数的含义。我在msdn中找到了一个非常简短的描述。
typedef struct tagMSG {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG, *PMSG, *LPMSG;
关于msg结构的参数和使用的描述对我来说很简短。所以请任何人向我解释一下。
Windows使用MSG结构向程序传递多种信息,包括按键、鼠标移动、单击、对窗口所做的更改等。不同消息的参数用法不同,因此需要查找特定消息以获取详细信息。您应该使用一本书或教程,向您展示创建Win API程序的基本知识。在那里,您将遇到几个必须处理的示例消息。
如果可能的话,您应该避免与此结构有任何关系。在visual studio c++中,使用消息通常只需要SendMessage()和PostMessage()函数,如果需要的话,它们可以用来生成消息,再加上接收消息的任何东西中的消息映射。消息映射将消息路由到一个特定的函数,该函数通常只看到wParam和lParam消息参数,或者根本看不到参数。有许多特殊的消息映射条目,它们使用带有来自消息的额外参数的函数,通常是pt.
如果真的在Win32级别编写所有代码,而不使用MFC和消息映射支持,那么事情会困难得多!您需要的是一个处理发送到给定窗口类型的消息的函数,该函数应该使用由消息值驱动的switch语句来调用消息特定的函数,通常将wParam和lParam传递给它们。WindowProc上的文档加上在谷歌上搜索这个名字应该可以帮助你掌握这个问题。
相关文章:
- 传递给std::function template的template参数究竟代表什么
- 什么..(省略号)作为函数原型中唯一的函数参数,C++?
- C++部分概念 id:显式模板规范顺序/第一个参数的特殊状态的原因是什么?
- 引用捕获和在 lambda 中通过引用发送参数有什么区别 (C++)
- C++有什么方法可以在既不调用函数模板也不提供其模板参数的情况下引用函数模板?
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?
- 未命名的非类型模板参数有什么意义?
- 有什么方法可以将具有不同模板参数的模板类实例放入向量中?
- 什么是仅调用一次并调用参数的控制台应用
- 在模板参数中使用 {} 在 type_trait{} 中时,其作用是什么<T>?
- 在 C 和 C++ 中作为函数参数,int **a 和 int a[][] 之间有什么确切的区别
- 为什么或在什么情况下,你会将参数作为C++中的引用(或指针)传递给函数?
- 没有大小参数的CString::GetBuffer()做什么
- 可变参数模板和省略号有什么区别?
- 当通知迭代器参数初始化为空列表的开头时,list::insert 行为是什么?
- C++ [错误] 声明'char '隐藏参数。什么意思?
- 用相同的参数声明两个构造函数的最偶像化的方法是什么?
- 使用作为参数返回的指针的最佳做法是什么
- C++构造函数调用 boost::文件系统::p ath 作为参数 - 什么也没发生
- 如果我只想指定哈希函数,我应该传递给unordered_map的存储桶计数参数什么?