Få komplett Taskbar systemmenyen for Delphi Apps

enkel kode for å gjøre C ++ Builder og Delphi app bruke 'standard' oppgavelinjen systemmenyen
Oppsummering
Når du høyreklikker på oppgavelinjen kategorien C ++ Builder /Delphi programmet, du få et system meny som viser tre elementer: Gjenopprett, Minimer og lukk. En standard windows app (som Notisblokk), viser tre mer: Utnytt, Størrelse og Flytt. Dette problemet skjer fordi en C ++ Builder /Delphi app har en skjult vindu, og det er denne skjulte vindu som har en fane på oppgavelinjen.
Denne kodebiten løser problemet ved å fjerne kategorien av den skjulte vinduet og erstatte den med den kategorien av den viktigste formen vindu.
Bruke koden
Sett inn følgende kode inn i applikasjonens hovedfilen (der TApplication er initialisert). Spesielt setter inn kodebiten umiddelbart etter at hovedformen er opprettet. Se koden for noen flere kommentarer. .... //De shlobj.h fil årsakene kompilere-time problemer i C ++ Builder 5. Å //unngå dem, definerer NO_WIN32_LEAN_AND_MEAN i: //Prosjekt- > Valg- > 'Telefon /Betinget' tab > «Betingede definerer" redigeringsboksen #include
#include " Unit1.h " //Den viktigste formen er blant annet fil (viktig å ta med!)
....
Søknads- > Initial (); Applikasjons- > CreateForm (__ classid (TForm1), & Form1),
if (SUCCEEDED (CoInitialize (0))) {ITaskbarList * pTaskbarList; if (SUCCEEDED (CoCreateInstance (CLSID_TaskbarList, 0, CLSCTX_INPROC, IID_ITaskbarList, (LPVOID *) & pTaskbarList)) & & pTaskbarList) {//Fjern kategorien skjult vindu pTaskbarList- > DeleteTab () ser ikke ut til å fungere ( atleast på Windows 2000), //så vi bruke en alternativ metode. Et vindu med WS_EX_TOOLWINDOW stil har ikke et oppgavelinjen kategorien: SetWindowLong (søknads- > Håndtak, GWL_EXSTYLE, GetWindowLong (søknads- > Håndtak, GWL_EXSTYLE) | WS_EX_TOOLWINDOW);
//Legg tab for hovedform i stedet pTaskbarList- > AddTab (Form1- > Håndtak);
pTaskbarList- > Slipp (); }} ≪ ....
søknads- > Run ();
....
Merknader
ITaskbarList er tilgjengelig på

Windows 95 med IE 4 eller større

Windows 98

Windows NT 4.0 med IE 4 eller høyere

Windows 2000

Windows XP
Spesielt versjon 4.71 eller senere av Shell32.dll er nødvendig.
Bugs

Oppgave kategorien betyr ikke forbli trykket under varigheten systemmenyen er aktiv.



Previous:
Next Page: