Empècher windows de réduire mon application si je clique sur l'icone bureau

mweber Messages postés 2 Date d'inscription mardi 14 février 2006 Statut Membre Dernière intervention 25 août 2009 - 25 août 2009 à 10:38
mweber Messages postés 2 Date d'inscription mardi 14 février 2006 Statut Membre Dernière intervention 25 août 2009 - 25 août 2009 à 14:22
Bonjour à tous,

Tout est dans le titre,

Je souhaite que mon application opensource (qui permet entre autre de sélectionner les lecteurs de disques depuis le bureau) reste visible et ce, même si l'utilisateur clique sur l'icône "afficher le bureau" dans la barre de lancement rapide de Windows.

J'ai essayé, parmi d'autres idées d'intercepter toutes les WM_COMMAND pour les inhiber:

void __fastcall TPrinc::StopMinimize(tagMSG &Msg, bool &Handled)
{
if (Msg.message == WM_COMMAND)
  {
  Handled = true;
  }
}



Mais cela semble marcher aléatoirement!

Je sais que la commande (il y en a peut être d'autres?) pour simuler l'appuit sur le bouton "afficher le bureau" est:

PostMessage(FindWindow("Shell_TrayWnd", 0), WM_COMMAND, 419, 0);



Avez vous une idée ?

Merci d'avance

1 réponse

mweber Messages postés 2 Date d'inscription mardi 14 février 2006 Statut Membre Dernière intervention 25 août 2009
25 août 2009 à 14:22
Salut !

Finalement à force de bidouiller des examples de codes et de recherches sur Google je viens de trouver la soluce, je la publie ici elle en intéressera surement plus d'un !

Il faut simplement () Dire que votre application est un enfant du Program Manager....


A ajouter dans la méthode FormCreate(TObject *Sender) :

  // Make application stay displayed if user press "Show Desktop" icon
  if (FindWindow("Progman", NULL) != NULL)
    {
    ::SetParent(Application->Handle, FindWindow("Progman", NULL));
    }


A bientot

Matthieu
0
Rejoignez-nous