21. februar 2003 - 08:50Der er
5 kommentarer og 2 løsninger
Minimer vindue til taskbar i Builder
Jeg vil gerne minimere et vindue (ved at klikke på minimize), men det ender i bunden af skærmen OVER taskbaren og det vil jeg gerne undgå, hvordan gør jeg det?
Jeg har prøvet at ændre på OnHide eventet, men det er ikke det...
??? Jeg vil gerne ændre på opførslen af "minimize" funktionen... Mit vindue vises med:
pForm->Show() og når der så klikkes på minimize (ved ikke hvilket event), så vil jeg lavet noget andet end det der sker nu (nemlig minimér til bunden af skærmen, ikke taskbar)...
Der er noget magi i maven på VCL'et det gør det du oplever (ok, så magisk er det nu heller ikke). Jeg kan anbefale at steppe igennem dele af VCL source-koden for at se det snavs de har opfundet til lejligheden...
Anyway, du skal ud i noget override af CreateParams på din form. Her skal du fedte lidt med Style, ExStyle og owner parametrene for at få dit vindue til at opføre sig som du gerne vil have det. Det er længe siden, men jeg mener du skal sætte Owner til nil og benytte WS_EX_TOOL-etellerandet. Der er muligvis flere - prøv dig frem, der er ganske interessant ;)
Du kan hverken bruge OnHide, ShowWindow eller lignende. Det er et spørgsmål om, hvordan BCB's TApplication laver dine vinduer (og at du siger til den, at kan hoppe i havnen).
...og det var så noget værre vrøvl... Override CreateParams() og inkludér WS_EX_APPWINDOW i ExStyle. Det burde gøre det (min Owner hedder WndParent - du kan evt. sætte til den NULL, men det er så vidt jeg husker ikke nødvendigt for det du gerne vil)
Det virker også næsten: Der minimeres til taskbar, men der kommer to ikoner i taskbar! (En for selvapplikationen og én for formen), hvordan undgår jeg det?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.