0

親プロセスから子プロセスにシステムメッセージを送信しようとしています。
1.親メソッド内にメッセージを登録しました:

UINT msg = RegisterWindowMessageA("my message");

2.子アプリケーションで、メソッドnativeEventをオーバーライドします。
Qtアシスタントでそのメソッドの構文を見つけましたが、引数の使用法が説明されていないため、情報が十分に提供されていません。

bool MainWindow::nativeEvent(const QByteArray& eventType, void* message,
        long* result)
{
    UINT mssg = RegisterWindowMessage(L"my message");
    UINT recivedMssg = *static_cast<UINT*>(message);
    if (recivedMssg == mssg)
    {
        *result = 0;
        QMessageBox::information(this,"",QString::number(recivedMssg));
        return true;
    }
    return false;
}

私はこの実装を行いましたが、期待どおりに機能しません。void*メッセージ-はメッセージの数であると考えました。
だから私の質問は: nativeEventで親プロセスから送信されたメッセージをどのように取得できますか?

4

1 に答える 1

3

私はまだQt5で遊んでいませんでしたが、違いがあるとは思えません。Windowsの場合、次のようにメッセージをキャストする必要があります。

MSG* msg = reinterpret_cast<MSG*>(message);

MSGがいくつかのWindowsヘッダーで宣言されたWindows固有の構造である場合(windows.hで十分です)

于 2013-02-24T07:13:17.257 に答える