2012-07-16 20 views
1

的MSDN链接http://msdn.microsoft.com/en-us/library/windows/desktop/ms645469(v=vs.85).aspx是什么uMsg参数意味着回调DialogProc()

解释有关DialogProc回调函数的定义。

在这里我没有看到第二个参数(UINT uMsg)在下面签名给出任何解释::

INT_PTR CALLBACK DialogProc( 
    __in HWND hwndDlg, 
    __in UINT uMsg, 
    __in WPARAM wParam, 
    __in LPARAM lParam 
); 

谁能好心解释请问这个2个参数(UINT uMsg)的意思。一些详细的解释(为什么我们需要这个uMsg参数,它的用法是什么,如何使用等),这将非常感激。非常感谢。

PS:我是新来的Callbacj函数,Win32 API编程。

+0

您可以发送多条消息。一个用于普通窗口的是“WM_LBUTTONDOWN”,当用户在窗口上按下鼠标左键时发送。 – chris 2012-07-16 14:13:32

回答

2

这是一个window message或更确切地说是一个对话消息在这种情况下。类似参数也存在于normal window procedures中。

有各种类型的窗口消息,其中很多都是从WM_或另一个不同的前缀开始,具体取决于窗口类(这里的类不意味着在OOP意义上,而是在Win32意义上)。

该消息说明正在发生什么样的“操作”(从窗口/对话框的角度)或您想要引发(从外部查看)。然后参数lParamwParam允许提供关于该“操作”的更多信息。

某些消息只是通知,其他消息可以发送到窗口以引发某些操作。

+0

谢谢。所以我只想澄清一下我的理解是否正确。所以当我在创建对话框时使用回调函数时,比如说对话框有一些像滑杆一样的控件。所以,当我点击滑动条时,windows会用适当的Windows消息和相应的lParam和wParam调用这个回调函数。我对吗 ? 。 – codeLover 2012-07-16 14:31:38

+0

@codeLover:是的。处理子窗口事件(即那些控件)最有可能的消息是'WM_COMMAND'和其他一些消息。 – 0xC0000022L 2012-07-16 14:33:05