Ich habe eine Nachricht Filter registriertWie sehen Windows-Meldungen eines Dialogs mit einem zweiten Thread?
Application.AddMessageFilter(m_messageFilter);
mit mit diesem ich alle der Maus anmelden können klickt ein Benutzer in der Benutzeroberfläche der Anwendung macht.
ist jedoch ein Dialog auf einem separaten Thread, mit dem Code so etwas wie laufen:
void Run()
{
using(MyDialog dialog = new MyDialog())
{
dialog.ShowDialog();
}
}
Thread thread = new Thread(Run);
Der Nachrichtenfilter wir einrichten keine Nachrichten zu sehen, die zu diesem Fenster gehen. Wie kann ich sie bekommen (idealerweise ohne zu aufdringlich zu sein)?
Ich habe versucht, MyDialog.PreProcessMessage zu überschreiben, aber ich bin verwirrt, dass dies scheint nie aufgerufen werden.
Danke.
Wie volatil wird hilfreich sein, hier oder auch relevant?Offensichtlich besteht das Problem darin, dass es zwei separate Nachrichtenpumpen gibt (Haupt-UI-Thread und zweiter UI-Thread) und der Filter nur zum Haupt-UI-Thread hinzugefügt wird und die Nachrichten im zweiten Thread zur Nachrichtenpumpe dieses Thread, die keine hat Filter. –