so finden Sie ein Fenster, SW_SHOW/SW_HIDE status
Ich bin versucht zu ermitteln, wird ein Fenster Steuern, die Sichtbarkeit, die versteckt wurde oder aktiviert mit CWnd::ShowWindow(). (oder ::ShowWindow(hWnd,nCmdShow))
Ich kann einfach nicht verwenden ::IsWindowVisible(hWnd) die Steuerung ist auf einem tab-Blatt, kann selber gewechselt werden, was IsWindowVisible "FALSE" zurückgegeben.
Ist es ein Weg, um die SW_SHOW ein - /AUSBLENDEN (oder andere), Fenster-status oder brauche ich die Rückfahrt Wert von ShowWindow() und reset entsprechend?
Bearbeiten:
die Steuerung ist aktiviert (oder deaktiviert) angezeigt, aber möglicherweise nicht aktuell sichtbar ist, als das tab eingeschaltet ist ot, ich würde denken, dass es SW_SHOW status würde die gleiche bleiben, auch wenn das Fenster selbst ist nicht wirklich ausgeschaltet. Wenn ich mich unrealistisch in meinen Erwartungen, das ist in Ordnung.
Also wirklich, ich bin auf der Suche nach 'kann das Fenster/control angezeigt werden'
InformationsquelleAutor der Frage geocoin | 2009-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden GetWindowPlacement. Es füllt WINDOWPLACEMENT Struktur, die Feld
showCmd
.InformationsquelleAutor der Antwort Kirill V. Lyadvinsky
Call
GetWindowLong( handle, GWL_STYLE)
überprüfen Sie den Rückgabewert, der für die Formate WS_VISIBLE-Stil-Präsenz.InformationsquelleAutor der Antwort sharptooth
Ich würde
GetWindowPlacement
aber ich bin nicht sicher, ob ich Verstand, was Sie möchten.Es füllt eine
WINDOWPLACEMENT
Struktur und verwenden Sie dann dieshowCmd
Mitglied.InformationsquelleAutor der Antwort jdehaan
GetWindowPlacement ()- Funktion funktioniert nur, wenn das Fenster maximiert oder minimiert. Ansonsten showCmd Mitglied zurück SW_SHOWNORMAL auch, wenn das Fenster ausgeblendet ist, wie bereits in diesem StackOverflow-Antwort: WINDOWPLACEMENT - showCmd... immer 1?
Können Sie noch einige einfache Boolesche Funktion IsWindowVisible() zu erhalten, wenn das angegebene Fenster ist in einen sichtbaren Zustand oder nicht.
InformationsquelleAutor der Antwort Flavio
Wenn es ist ein multi-tab-dialog und nicht in eine Kontrolle, dann überschreiben als
In BEGIN_MESSAGE_MAP, fügen Sie ON_WM_SHOWWINDOW().
m_nCmdShow hat nun den status, wenn das Fenster SW_SHOW oder SW_HIDE.
InformationsquelleAutor der Antwort Irfan
Ich weiß nicht, ob es eine richtige Methode für diese Aufgabe, aber ich würde versuchen, WindowFromPoint-Funktion.
Beispielsweise würde ich konvertieren Steuern die Ecke coords in screen-Koordinaten und Sie dann versuchen, es zu bekommen ist, Griff diese Punkte.
InformationsquelleAutor der Antwort Nick Dandoulakis