Wie kann ich Kraft meiner app, um nach vorne zu kommen und den Fokus?

Arbeite ich an einer Anwendung, die passiert werden die bootstrap für einen installer, ich bin auch arbeiten. Die Anwendung macht ein paar MSI-calls, um Informationen zu bekommen, die ich brauche für die Zusammenstellung des Assistenten, der meine Anwendung ein Hauptfenster, die bewirkt, dass ein Fenster zu öffnen, während die Informationen gesammelt werden und dann gehen Sie Weg, sobald das erledigt ist. Dann den Assistenten eingerichtet und gestartet. Mein problem ist, dass die Assistenten (von CPropertySheet abgeleitete) will sich nicht nach vorne zu kommen und die aktive Anwendung, ohne dass ich hinzufügen, die in ein paar Anrufe zu tun.

Ich habe das problem, bringen es auf der Vorderseite mit dem folgenden code in der OnInitDialog () - Methode:

SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); //force window to top
SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); //lose the topmost status that the previous line gave us

Mein problem ist, dass ich immer noch nicht herausgefunden, wie man die Fenster selbst aktivieren (d.h., selbst derjenige sein, der den Fokus hat). SetFocus() funktioniert nicht in diesem Zusammenhang. Ich brauche etwas, das Sie zwingen wird das Fenster an den oberen Rand der Z-Reihenfolge und aktivieren Sie es, vorzugsweise in so wenigen anrufen wie möglich.

Meine Vermutung ist, dass Sie das Fenster geöffnet, bei dem Anfang von der MSI nennt die Ursache für das Hauptfenster zu vermasseln, aber ich habe keine Möglichkeit zu verhindern, dass das Fenster angezeigt wird. Auch würde es keinen Sinn machen, es zu verbergen, denn Sie ermöglicht es dem Benutzer, zu wissen, was Los ist, bevor das Hauptfenster kommt.

InformationsquelleAutor RobH | 2009-03-27

Schreibe einen Kommentar