J'ai écrit un programme qui peint le widget sur le papier peint du bureau, sous les icônes du bureau, et tout était bon. Mais je révèle un bug étrange - mon programme ne fonctionnait pas sur d'autres ordinateurs - ils affichent le même bureau sans widget après le démarrage.dessin sous les icônes sur le bureau
Alors, y a-t-il des expiriences, des connaissances dans ce domaine? Aidez-moi, s'il vous plaît! :)
(je ne trouve aucun ordinateur près, où un widget pas des œuvres, dans mon ordinateur tout fonctionne bien. j'ai écrit beaucoup de programmes de test, dont les essais tirer quoi que ce soit sur le bureau avec plutôt des méthodes, mais le test affiche rien de trop dans mes ordinateurs amis)
méthode de dessin:.
J'ai écrit une dll, qui trouve la fenêtre de bureau (enfant progman-> Enfant->)) et crée un crochet et installer propre procédure de fenêtre bureau. Dans la procédure de fenêtre i crochet WM_ERASEBKGND:
case WM_ERASEBKGND:
HDC hdc = (HDC)wparam;
PaintDesktop(hdc);
WidgetPaint(hdc);
return 1;
// Je saute dans ce code obtenir et définir des zones de découpage pour le dessin rapide. (J'ai essayé toutes les combinaisons avec écrêtage et sans écrêtage)
Et dans les tests j'essaie aussi de peindre le widget dans le message WM_PAINT avec les mêmes résultats - tout fonctionne déjà chez moi, mais ne fonctionne pas du tout mes amis.
upd: Je l'ai résolu! :)
Votre code fonctionne-t-il sous Windows XP et * ne * fonctionne pas sous Windows Vista ou Windows 7? – MusiGenesis
Oui, mon code fonctionne sous XP et Windows Vista. Mais copmletely ne fonctionne pas dans Windows 7. Dans Windows 7, je suppose, son mécanisme de protection. (Je ne peux même pas lister les DLL chargées dans le processus explorer.exe) – vsvasya
Par curiosité, quelle était la solution? – Brian