Prüfen ob Fenster offen
-
Hallo,
also ich habe feolgendes problem.Ich habe ein Standartfenster, so wenn ich auf einen Button drücke dann öffnet sich ein neues Fenster, wie kann ich nun im Standart fesnter prüfen ob diese Fenster offen ist oder nicht, ich hole mir mit FindWindowEx das Fenster aber wie kann ich nun überprüfen ob das Fenster offen ist?
Wäre über jede hilfe sehr dankbar
-
Wie öffnet sich das Fenster? CreateWindow? Dann kannst du einfach das Handle abfragen. Wenn es ==NULL ist, gibts kein neues Fenster.
Mehr Informationen wie z.B. Code wären hilfreich.
gruß
MartinPS: Es heißt Standard. Standard mit d.
-
ohh sorry,... für das standard, ja es wird mit createwindow erstellt, und was soll ich da jetzt prüfen,
einfach
if(meinfenster==NULL) //dann tue etwas?
-
Damit prüfst du, ob das Fenster überhaupt erstellt wurde. Meinst du mit "offen" ob es dargestellt wird? GetWindowInfo und dwWindowStatus auf WM_ACTIVECAPTION prüfen!
-
ja genau damit meine ich, das es dargestellt ist, kannste mir den syntax von GetWindowIfno vieleicht vorgeben?
-
Probiers mal hiermit: http://msdn2.microsoft.com/en-us/library/ms633516.aspx
-
Firefighter schrieb:
ja genau damit meine ich, das es dargestellt ist, kannste mir den syntax von GetWindowIfno vieleicht vorgeben?
gebe in google: "msdn GetWindowInfo" ein, die ersten ergebnisse dürften gute treffer sein, sonst ist das Forum bald ne Kopie der MSDN
-
Wenn Du mit 'offen' existent meinst, eignet sich IsWindow besser dafür.
-
Ist IsWindow() großartig anders als if(handle != NULL)? Die Beschreibung in der MSDN lässt zumindest den Schluss zu, dass es ähnlich ist.
-
Nein IsWindow prüft ob ein Handle noch gültig ist. Ich würde mich aber nicht darauf verlassen, denn Window Handles werden wieder verwendet. Sind also nicht eineindeutig.
Du musst Dir ja merken ob ein Fenster erzeugt wurde. Das merken geschieht vermutlich ein einer mehr oder weniger zugänglichen (globalen) Variablen. Wenn das Fenster zerstört wird, solltest Du diese Variable auch wieder auf NULL setzen...
Einfacher ist das gaze wenn man ein Framework verwendet (ATL/MFC), dann werden diese ganzen Sachen wunderbar gekappselt.