2009-09-03 9 views
1

J'ai une application que je veux coller au bureau. S'en tenir au bureau signifie que chaque fois que quelqu'un clique sur Windows + D ou sur l'icône du bureau d'affichage, le bureau apparaîtra avec l'application dessus.Application de bâton au bureau sur Vista

L'utilisateur peut localiser l'application sur le bureau et modifier l'emplacement à tout moment, mais il reste toujours sur le bureau.

Nous réussissons à le faire sur XP en définissant le parent de l'application comme le bureau en utilisant les méthodes winAPI SetParent (ce .Handle, FindWindow ("Progman", null)) ;.

Sur Vista, nous arrivons à coller sur le bureau, chaque fois que le bureau obtient le focus, il dessine un arrière-plan gris autour de la fenêtre. ce fond ne disparaît pas quand ma fenêtre est déplacée, laissant des carrés moche sur le bureau. quand je clique sur Windows + D, ils disparaissent tous. Notez que cela ne se produit pas sur XP du tout.

Le client est basé sur .NET 3.0 et WPF.

Une idée pourquoi cela arrive et comment le résoudre?

Répondre

0

utiliser le code suivant et passer la poignée de fenêtre à la fonction en forme de charge espoir complètement cela résout votre problème

public void SetFormOnDesktop(IntPtr hwnd) { 
IntPtr hwndf = hwnd; 
IntPtr hwndParent = FindWindow("ProgMan", null); 
SetParent(hwndf, hwndParent); 
} 
Questions connexes