Hallo in die Runde,
Hab in meiner StatusZeile eine kleine Lampe (als Icon) platziert, die je nach Situation mal rot & mal grün leuchten soll. Wenn aber zwischen durch ein Load- oder Savedialog geöffnet wird, ist meine Lampe weg. Der Statustext bleibt aber stehen - komisch...
Gibts da 'ne Möglichkeit, das zu Umschiffen bzw. zu vermeiden?
Oder ist das vllt. von Roland garnicht so geplant?
Hab mal 'ne kleine Demo zum proben vorbereitet:
Code
Declare stat#,hstat&,hicor&,hIL&,hBMP&,uir&
WindowStyle 512 + 8 + 2
Window 700,500
'statuszeile bauen:
Dim stat#, 12 'bereich für die aufname der positionen der einzelnen statusfelder
Long stat#,0 = 20,200, -1 'die rechte kante der einzelnen statusfelder definieren
hstat& = @Create("statuswindow",%hwnd,"",3,stat#)'statusleiste ohne text erzeugen
SetText hstat&,1,"Alles schick..." 'text in statuszeile feld 2
'icon laden:
hBmp& = create("hPic", 0, "TOOLBAR") 'die toolbar-icons aus der profanruntime in eine bitmap schreiben
hIL& = Create("ImageList",16,16,hBmp&,12632256) 'bitmap in eine imageliste kopieren, damit ich dort gezielt icons extrahieren kann
DeleteObject hBmp& 'wird nicht mehr benötigt, weil in imagelist kopiert wurde
hicor& = ImageList("GetIcon", hIL&, 71) 'icon grüne lampe
DeleteObject hIL& 'imagelist wird nicht mehr benötigt, weil icon extrahiert wurde
'icon zeichnen:
uir& = @Height(%hwnd) 'höhe des innenbereiches für das hauptfenster (ist gleichzeitig das letzte pixel am unteren fensterrand)
DrawIcon hicor&, 2, uir& - 17 'grüne lampe in statuszeile feld 1
Print "Nach Taste wird Loadfile-Dialog geöffnet"
WaitKey
Print @LoadFile$(%hwnd,"Völlig egal jetzt - Abbrechen reicht...","*.*")
Print "So! Und wo ist jetzt die grüne Lampe hin? -- Taste = Ende --"
WaitKey
End
Alles anzeigen
Edit: auch ein CLS putzt das Icon weg. Platziere ich es 50 Pixel höher, übersteht es den Loadfile-Dialog...