Avatar billede ladyhawke Novice
21. februar 2003 - 08:50 Der 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...
Avatar billede somaliomar Praktikant
21. februar 2003 - 09:29 #1
Har du prøvet
ShowWindow(MyWindows, SW_MINIMIZE);
Avatar billede ladyhawke Novice
21. februar 2003 - 09:35 #2
???
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)...

Kan man det med ShowWindow?
Avatar billede doctorseb Nybegynder
21. februar 2003 - 15:09 #3
Hejsa,

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).

Held og lykke,
Avatar billede doctorseb Nybegynder
21. februar 2003 - 15:16 #4
...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)
Avatar billede ladyhawke Novice
24. februar 2003 - 07:53 #5
Tjekker lige...
Avatar billede ladyhawke Novice
24. februar 2003 - 09:47 #6
Jeg har lavet følgende:

void __fastcall CreateParams(TCreateParams &Params);

void __fastcall TMainForm::CreateParams(TCreateParams &Params)
{
    TForm::CreateParams(Params);
    Params.ExStyle = Params.ExStyle | WS_EX_APPWINDOW;
    Params.WndParent = GetDesktopWindow();
}

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?
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester