Maximieren "abfangen"
Übersicht

![]() |
flonaBetreff: Maximieren "abfangen" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hy, alle zusammen.
Ich hab mal wieder ne Frage. Und zwar: Kann man das Maximieren eines Fensters "abfangen"? Also ich möchte ein Fenster, das nur auf Minimieren und Schließen reagiert und den Maximieren-Button entweder gar nicht erst anzeigt oder zumindest nicht darauf reagiert. Ich hab da schon was probiert: Code: [AUSKLAPPEN] win=CreateWindow("",0,0,420,243,Desktop(),3)
Repeat ;1.If WindowMaximized(win) Then RestoreWindow win Select WaitEvent() ;2.Case $802 RestoreWindow win Case $803 End End Select Forever Es funktioniert auch, aber der Bildschirm flackert kurz ![]() Weiß jemand ob und wenn ja wie man maximieren "abfängt"? Mit dll? mfg |
||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du beim letzten Parameter von CreateWindow "1" angibst, wird kein Maximieren-Button erstellt. Dann lässt sich das Fenster aber auch nicht
vergrössern / verkleinern. Wenn du das trotzdem willst, wird es etwas komplizierter ... |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
mach doch n manuellen minimieren button so alla createbutton("",x,y,20,20) | ||
![]() |
flona |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich brauche den Minimieren und Schließen Button. Von einem manuellen Button halte ich eher weniger, da das Programm nur wenig Platz einnehmen darf.(Ist eh schon zu groß)
Gibt es keine anderen Möglichkeiten? |
||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Doch, aber dafür muss man etwas tiefer in die WinAPI-Trickkiste greifen.
Ich konnte es nur mit BlitzMax testen, weil ich kein BlitzPlus habe. Hier ein umgeschriebenes Beispiel: Code: [AUSKLAPPEN] Function AddMinimizeButton( win, title$ )
Local hwnd = QueryObject( win, 1 ) Local style = GetWindowLongA( hwnd, -16 ) SetWindowLong( hwnd, -16, style + $00020000 ) ' Titelleiste neu zeichnen SetGadgetText( win, title$ ) End Function Das Fenster muss vorher mit dem Style "1" erstellt worden sein! Dann wird der Minimieren-Button hinzugefügt. Der Maximieren-Button ist deaktiviert. Leider musst du noch die Beschriftung des Fensters mit angeben, damit es neu gezeichnet wird und die Änderungen sichtbar werden. Vielleicht kennt hier jemand eine bessere Möglichkeit die Titelleiste des Fensters neu zu zeichnen ... Edit: Ach ja, du musst noch eine "user32.decls"-Datei im userlibs-Ordner des BlitzPlus Verzeichnisses erstellen. Inhalt: Code: [AUSKLAPPEN] .lib "user32.dll"
GetWindowLongA%( hwnd%, long% ) SetWindowLongA%( hwnd%, long%, newlong% ) |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
flona |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke ProGamer.Coder.
Funktionierte nach kleiner Änderung super. ![]() Hast bei Code: [AUSKLAPPEN] SetWindowLong
"A" vergessen, aber nochmal danke. |
||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group