C ++ Windows窗体操作系统消息捕获

时间:2014-10-16 11:15:40

标签: c++ windows winforms

我有一个c ++窗体,可以使用以下代码捕获在应用程序中发送的消息:

protected:
virtual void WndProc(Message% m) override 
{
switch (m.Msg)
{
    case WM_USER:
       MessageBox::Show("Encountered WM_USER message");
       break;

    case WM_DESTROY:
       MessageBox::Show("Closing application..");
       break;

    default:
       break;
}
__super::WndProc(m);
}

在应用程序中发送WM_USER消息或WM_DESTROY消息时会正确触发,但在从其他应用程序发送时不捕获消息。我需要能够访问未明确用于应用程序窗口的消息。

使用表单创建和执行表单     Application :: Run(gcnew Form1()); 这也启动了消息循环。

是否可以使用此C ++和Windows窗体的方法访问操作系统消息?

1 个答案:

答案 0 :(得分:1)

只要窗口处理了消息,您就会执行WndProc方法。如果该方法没有执行,那么显而易见的结论是,您希望捕获的消息不会被发送到您的窗口。