Veröffentlicht 25. April 200124 j Moin! Kann mir jemand von Euch erklären, wie man den Funktionsaufruf "ShowWindow(SW_HIDE)" sinnvoll nutzen kann? Nach dem Rücksprung ist das Fenster unsichtbar und scheinbar nur noch im Task-Manager zugänglich. Inaktiv ist es auch, also wie kann es weiter Nachrichten verarbeiten? Danke im voraus
25. April 200124 j Hallo! Wenn ein Fenster doch nicht mehr sichtbar ist, welche Nachrichten sollte es dann erhalten (außer WM_TIMER)? Du könnest aber die Nachrichtenbearbeitung ändern, so daß Dein Prog dauerhaft irgendwas macht, im Gegensatz zu Nachrichtenbearbeitung mit while( GetMessage(...) ), da dort nur etwas geschieht wenn Nachrichten ankommen. Dies würde in etwa so aussehen: while( 1 ) { if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { if( msg.message==WM_QUIT ) break; else { TranslateMessage(&msg); DispatchMessage(&msg); } ... deine spezielen Anweisungen ... } } Ich hoffe das Dich das irgendwie weiter bringt! Wenn nicht frag' nochmal genauer! Gruß Daniel [ 25. April 2001: Beitrag editiert von: Strato ]
25. April 200124 j Autor Hallo Daniel, erstmal Danke für die Antwort. Ich habe eigentlich nichts spezielles vor, aber mich interessiert einfach, welche Möglicheiten man mit dieser Option (SW_HIDE) hat. Lege ich mit Deiner Lösung nicht das ganze System lahm? Wäre da ein Hintergrundthread nicht besser? Und wie kann ich meinem Fenster WM_QUIT-Nachrichten (oder andere Userbefehle) zukommenlassen?
26. April 200124 j Hallo! 1. Mit dieser Lösung legst Du keine Systeme lahm da das Programm ja auch nur eine begrenzte CPU-Zeit bekommt (die meisten Computerspiele verwenden diese Lösung). 2. Nachrichten wie etwa WM_QUIT muss sich das Programm selbst schicken wenn seine Aufgabe erledigt ist, oder Du hookst dich an die System-Nachrichtenschleife, dann kannst Du immer noch alle bzw. die gewünschten Nachrichten erhalten und darauf Reagieren!
26. April 200124 j Autor Hi Daniel, wie hook ich mich denn an die Systemschleife? Ich hab leider recht wenig Erfahrung mit den "Dingen hinter der Kulisse", da ich bis jetzt nur MFC benutze. Dank und Gruß
26. April 200124 j Hallo! Zu erklären wie man die Hauptnachrichtenschleife anzapft würde jetzt den Rahmen sprengen! Ist nicht sehr kompliziert, finde ich! Wenn Du mir deine eMail-Adresse gibst könnte ich Dir einen gescannten Artikel aus der c't senden der dies Beschreibt! Grüße aus dem Ruhrpott in den Ruhrpott! P.S. Vergiss die MFC! [ 26. April 2001: Beitrag editiert von: Strato ]
27. April 200124 j @strato, wäre sehr nett, wenn du mir den artikel auch einmal zusenden könntest. meine adresse ist lange-m@web.de ps: bitte nicht die aus dem profil verwenden. unser mailserver ist nicht am netz.
27. April 200124 j @maddin Ist die obige Adresse richtig? Ich bekomme immer nur Fehler-Mails zurück! Gruß Daniel
2. Mai 200124 j eigentich schon. oder hast du doch die adresse aus dem profil genommen. das ist nämlich eine andere und die funzt net. jedenfalls jetzt nicht.
2. Mai 200124 j @maddin Ich habe die Adresse genommen die du oben angegeben hast, nicht die aus deinem Profil! Ich habe die Mail aber schon zum 2 mal zurück bekommen! Wie groß dürfen den bei dir die Mails + Anhänge sein?
3. Mai 200124 j gute frage. ich stell sie mal öffentlich in den raum. wie groß dürfen anhänge bei web.de sein. meiner meinung nach 2mb.
4. Mai 200124 j problem ist, das unser mailserver in der firma gerade umgezogen ist. zusammen mit der ausbildungsabteilung und die leute es in zwei wochen nicht geschafft haben, das ding wieder ans netz zu hängen. vielleicht wäre es eine möglichkeit das packet zu teilen oder in ein bis zwei wochen nocheinmal zu schicken. ps: wenn die ct nach dem 1.1.2000 erschienen ist, würde es auch reichen, wenn du die ausgabe postest
4. Mai 200124 j Die c't Ausgabe ist von 5.99 (glaube ich)! Wenn Du willst kann ich Dir den Artikel schicken wenn euer Server wieder läuft! Musst Dich halt nur mal bei mir melden! Gruß Daniel
18. Januar 200223 j sers. ich weiss nicht, ob ihr inzwischen eine Loesung gefunden habt, habe aber gesehen das das Thema erneut angesprochen wurde...hier steht wie es bei der winapi geht also bei der Winapi kenne ich 2 Möglichkeiten, dass Programm unsichtbar zu machen.... die Funktionen ShowWindow und UpdateWindow entfernen oder kurz vor der ShowWindow-Funktion iCmdShow = SW_HIDE; einfuegen...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.