0

在 Windows 上的 C++ 中,我们使用用户定义的消息在表单 UI 中通过 PostMessage API 更新数据。我们可以在 C# 中使用 PostMessage,但不知道如何在 Forms 中处理用户定义的消息!有些人会告诉我使用委托和调用,但是当线程调用委托时表单关闭或尚未创建时我们会遇到问题。我们仍然更喜欢 PostMessage 来通知 UI 更新数据。请帮忙。

4

1 回答 1

2

Form有一个可以覆盖的方法WndProc,它将接收您的自定义消息。它以一个Message结构体为参数,封装了消息的hwnd、msg、wParam和lParam参数,并包含一个消息结果字段。因此,假设您有一条已注册的消息:

class MyForm : Form
{
    const int MyMessage = WM_USER + 0x05; // for example

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == MyMessage)
        {
            // do whatever with your message
        }
    }
}
于 2011-05-02T17:08:34.270 回答