2014-02-19 53 views
-2

我是vC++的新手,我正在创建一个win32窗口应用程序。我有我的视觉工作室创建的默认项目。通过代码我发现MSG msg;。我搜索了很多关于它的用途以及它的参数是什么意思。我在msdn中发现了一个非常简短的描述。MSG结构的用途是什么?参数代表什么?

typedef struct tagMSG { 
    HWND hwnd; 
    UINT message; 
    WPARAM wParam; 
    LPARAM lParam; 
    DWORD time; 
    POINT pt; 
} MSG, *PMSG, *LPMSG; 

关于msg结构的参数和使用的描述对我来说很简短。所以请任何人都可以向我反映。

+1

[概念:消息和消息队列](http://msdn.microsoft.com/en-us/library/windows/desktop/ms632590%28v=vs.85%29.aspx) –

+0

删除了'.net'标签,添加了'winapi'标签。 – crashmstr

回答

0

如果可能,您应该避免与此结构有任何关系。在Visual Studio C++中通常需要使用消息的是SendMessage()和PostMessage()函数,如果需要,可以使用这些函数生成消息,并在任何接收消息的消息中添加消息映射。消息映射将消息路由到一个特定的函数,该函数通常只能看到wParam和lParam消息参数,或根本没有参数。有许多特殊的消息映射条目使用带有消息中额外参数的函数,通常是pt。

如果您是确实在Win32级别编写所有代码,而不是使用MFC和消息映射支持,事情会变得更加困难!你需要的是一个处理发送给给定窗口类型的消息的函数,它应该使用由消息值驱动的switch语句来调用消息特定的函数,通常将wParam和lParam传递给它们。 WindowProc上的文档和谷歌搜索这个名字应该可以帮助你解决这个问题。

0

Windows使用MSG结构,多种东西传递给你的程序,包括按键,鼠标移动,点击,您的Windows所做的更改等参数的用途是不同的消息不同,所以对你的细节需要查找特定的消息。您应该使用一本书或教程来向您展示创建Win API程序的基础知识。在那里你会遇到几个你必须处理的示例消息。