Procurer l'intégralité de la barre des tâches du système de menu pour vos applications delphi
code Simple pour rendre votre C Builder ou Delphi app utiliser l'option & #39 & #39 de la barre des tâches du système de menu
en Résumé
Lorsque vous cliquez-droit sur C Builder et Delphi application & #39 s onglet barre des tâches, vous
obtenez un système de menu qui affiche trois éléments: la Restauration, Réduire et Fermer. Un
norme d'application windows(comme le bloc-notes), affiche trois plus: Maximiser, de la Taille et de la Déplacer.
Ce problème se produit car un C Builder et Delphi application dispose d'une fenêtre masquée, et
c'est cette fenêtre masquée qui a un onglet sur la barre des tâches.
& nbsp
Ce bout de code permet de résoudre le problème par la suppression de l'onglet de la fenêtre masquée
et de le remplacer avec de l'onglet du formulaire principal & #39 s de la fenêtre.
le code
Insérez le code suivant dans votre application & #39 s fichier principal (où TApplication est
initialisé). Plus précisément, insérer l'extrait de code immédiatement après le principal
le formulaire est créé. Voir le code pour un peu plus de commentaires.
....
//La shlobj.h fichier d'origine au moment de la compilation des problèmes dans C Builder 5. Pour
//les éviter, de définir NO_WIN32_LEAN_AND_MEAN dans:
//Projet->Options-> & #39 Répertoires/Conditionnel & #39 onglet-> & #39 Conditionnelle définit & #39 zone d'édition
#
#inclure 'Unit1.h' //Le formulaire principal & #39 s fichier include (important d'inclure!)
....
Application->Initialize()
Application->CreateForm(__classid(TForm1), & Form1)
si(RÉUSSI(CoInitialize(0)))
{
ITaskbarList *pTaskbarList
if(RÉUSSI(CoCreateInstance(CLSID_TaskbarList, 0,CLSCTX_INPROC, IID_ITaskbarList, (LPVOID *) & pTaskbarList)) & & pTaskbarList)
{
//Supprimer l'onglet de la fenêtre masquée pTaskbarList->DeleteTab() ne semble pas fonctionner (au moins sur Windows 2000),
//nous utilisons donc une méthode alternative. Une fenêtre avec le WS_EX_TOOLWINDOW style n'a pas un onglet barre des tâches:
SetWindowLong(Applications->Gérer, GWL_EXSTYLE, GetWindowLong(Applications->Gérer,GWL_EXSTYLE)|WS_EX_TOOLWINDOW)
//Ajout d'un onglet pour le formulaire principal au lieu de
pTaskbarList->AddTab(Form1->Handle)
pTaskbarList->Release()
}
}
<
....
Application->Run()
....
Notes
ITaskbarList est disponible sur
- Windows 95 avec IE 4 ou supérieur
- Windows 98
- Windows NT 4.0 avec IE 4 ou supérieur
- Windows 2000
- Windows XP
plus Précisément, la Version 4.71 ou plus tard de Shell32.dll est nécessaire.
Bugs
- L'onglet barre des tâches ne reste pas enfoncé pendant toute la durée du système de menu est actif.
Procurer l'integralite de la barre des taches du systeme de menu pour vos applications delphi
Procurer l'integralite de la barre des taches du systeme de menu pour vos applications delphi : Plusieurs milliers de conseils pour vous faciliter la vie.
code Simple pour rendre votre C Builder ou Delphi app utiliser l'option & #39 & #39 de la barre des taches du systeme de menu
en Resume
Lorsque vous cliquez-droit sur C Builder et Delphi application & #39 s onglet barre des taches, vous
obtenez un systeme de menu qui affiche trois elements: la Restauration, Reduire et Fermer. Un
norme d'application windows(comme le bloc-notes), affiche trois plus: Maximiser, de la Taille et de la Deplacer.
Ce probleme se produit car un C Builder et Delphi application dispose d'une fenetre masquee, et
c'est cette fenetre masquee qui a un onglet sur la barre des taches.
& nbsp
Ce bout de code permet de resoudre le probleme par la suppression de l'onglet de la fenetre masquee
et de le remplacer avec de l'onglet du formulaire principal & #39 s de la fenetre.
le code
Inserez le code suivant dans votre application & #39 s fichier principal (ou TApplication est
initialise). Plus precisement, inserer l'extrait de code immediatement apres le principal
le formulaire est cree. Voir le code pour un peu plus de commentaires.
....
//La shlobj.h fichier d'origine au moment de la compilation des problemes dans C Builder 5. Pour
//les eviter, de definir NO_WIN32_LEAN_AND_MEAN dans:
//Projet->Options-> & #39 Repertoires/Conditionnel & #39 onglet-> & #39 Conditionnelle definit & #39 zone d'edition
#
#inclure 'Unit1.h' //Le formulaire principal & #39 s fichier include (important d'inclure!)
....
Application->Initialize()
Application->CreateForm(__classid(TForm1), & Form1)
si(REUSSI(CoInitialize(0)))
{
ITaskbarList *pTaskbarList
if(REUSSI(CoCreateInstance(CLSID_TaskbarList, 0,CLSCTX_INPROC, IID_ITaskbarList, (LPVOID *) & pTaskbarList)) & & pTaskbarList)
{
//Supprimer l'onglet de la fenetre masquee pTaskbarList->DeleteTab() ne semble pas fonctionner (au moins sur Windows 2000),
//nous utilisons donc une methode alternative. Une fenetre avec le WS_EX_TOOLWINDOW style n'a pas un onglet barre des taches:
SetWindowLong(Applications->Gerer, GWL_EXSTYLE, GetWindowLong(Applications->Gerer,GWL_EXSTYLE)|WS_EX_TOOLWINDOW)
//Ajout d'un onglet pour le formulaire principal au lieu de
pTaskbarList->AddTab(Form1->Handle)
pTaskbarList->Release()
}
}
<
....
Application->Run()
....
Notes
ITaskbarList est disponible sur
- Windows 95 avec IE 4 ou superieur
- Windows 98
- Windows NT 4.0 avec IE 4 ou superieur
- Windows 2000
- Windows XP
plus Precisement, la Version 4.71 ou plus tard de Shell32.dll est necessaire.
Bugs
- L'onglet barre des taches ne reste pas enfonce pendant toute la duree du systeme de menu est actif.
Procurer l'intégralité de la barre des tâches du système de menu pour vos applications delphi
By commentfaire
Procurer l'intégralité de la barre des tâches du système de menu pour vos applications delphi : Plusieurs milliers de conseils pour vous faciliter la vie.