Taskleiste einfahren
-
Hallo zusammen,
ich habe ein Problem, wo ich leider nicht weiß, was ich machen soll:
Ein Formular soll auf den ganzen Bildschirm vergrößert werden, d.h. die Taskleiste soll ausgeblendet werden. Allerding hab ich schon in der Suchfunktion hunderttausende von Themen gefunden, die ähnliches gefragt haben (Vollbild), aber das ist mir nicht Möglich, da ich möchte, dass das Hauptformular nicht die anderen Formulare überdeckt.Ausserdem wird bei mir die Taskleiste nur überdeckt, wenn ich BorderStyle auf bsNone stelle. Aber damit wäre ja dann die Titelleiste futsch. Deshalb meine Frage, wie man die Taskleiste "einklapt" und bei "OnMouseOver" wieder kurzfristig ausklapt (Kann man ja auch bei der Taskleiste manuell einstellen: Aber in meinem Programm soll es halt automatisch eingestellt werden und wieder ausgeschalten werden)
-
Hallo,
wenn ich dich richtig verstehe willst du von deinem Programm aus die Taskleiste von Windows in den Hintergrund setzen ?
Mal abgesehen davon, das ich mich als Anwender bedanken würde wenn ein Programm meine Windowseinstellungen ändert, ist das ein Thema fürs "WinAPI-Forum".
mit Sicherheit gibt es dafür eine WinAPI FunktionGruß Mikel
-
Da hat Mikel in beiden Punkten recht, kriegt ne aufblasbare Waschmaschine geschenkt (oder Wahlweise ein Gummiaquarium) für die Moderationshilfe... und bevor ich noch weiter rummülle, verschieb ich das mal (o;
->Verschoben
-
Falls sie nicht hochfahren muss, wenn du an den unteren Bildschirmrand fährst könntest du sie auch mit FindWindow und ShowWindow verstecken
-
HWND hwndTask = FindWindow ("Shell_TrayWnd", NULL) ;
damit bekommst du das HWND von der Taskleiste. Aber als Anwender wuerde ich auch nicht glueckluch wenn ein prog. die verschwinden laest...
-
Danke für die Hilfe!
Ja du hast vollkommen recht. Das ist nicht so toll.
Ich habs jetzt so gemacht, dass die Leiste beim Schließen wieder angezeigt wird.Aber was ist, wenn das Programm mal abstürzt und dadurch die OnClose nicht mehr durchgeführt werden kann? Scheiße. Neustarten.
-
...dann sorg halt dafür, das Dein Programm nicht abstürzt....
-
mit einem try-finally bzw. SEH hast du eigentlich immer die Möglichkeit die Taskleiste wieder einzublenden
-
Ich würde dich töten, wenn dein Programm meine Taskleiste klauen würde
-
:p
-
Wenn ich das Hwnd von der taskleiste hab wie verstecke ich sie.
Und wenn wir schon dabei sind, wie mache ich sie wieder sichtbar?euer ahnungsloser
Gen.d.Pz.Tr.Seb
-
ShowWindow :p
-
Könntest mir vielleicht ein Beispil geben. (Irgendwas einfaches, mehr versteh ich eh noch nicht)
-
ShowWindow( hZurTaskLeiste, SW_HIDE); //versteckt ShowWindow( hZurTaskLeiste, SW_SHOW); //macht sichtbar
-
So danke, wenigstens eins meiner Probleme hat sich aufgelöst. Die Taskleiste verschwindet. Und sie kommt auch wieder.
Euer sehr dankbarer
Gen.d.Pz.Tr.Seb.
-
Ja und wann meinst du, wann ich try-Finally einbauen soll?
Ich weiß ja nicht, wo und wann das Programm abstürtzt oder nicht mehr reagiert.
-
@andist:
gegen dein letzes prob hab ich ne gute lösung:
Blende die Taskleiste doch gar nicht erst aus
erspart dir mit sicherheit ne menge ärger, vom ärger des users aus (wenn die taskleiste weg ist) bis zur sorge, dass dein Programm abstürzen könnte.cya
-
ich habe es noch nicht ausprobiert, aber du könntest doch vielleicht einfach alles in WinMain in ein try finally einbauen - besser natürlich noch SEH
-
Danke. Das muss ich jetzt mal ausprobieren.