我有一个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窗体的方法访问操作系统消息?
答案 0 :(得分:1)
只要窗口处理了消息,您就会执行WndProc
方法。如果该方法没有执行,那么显而易见的结论是,您希望捕获的消息不会被发送到您的窗口。