Windows上のC++では、ユーザー定義のメッセージをフォームUIで使用して、PostMessageAPIを介してデータを更新します。C#でPostMessageを使用できますが、Formsでユーザー定義のメッセージを処理する方法がわかりません。デリゲートを使用して呼び出すように指示されるものもありますが、スレッドがデリゲートを呼び出すときにフォームが閉じられているか、まだ作成されていない場合に問題が発生します。データを更新するようにUIに通知するPostMessageを引き続き使用します。助けてください。
3491 次
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 に答える