Question

Je crée un SIP personnalisé Windows Mobile et lorsque l'utilisateur appuie ou "survole" sur un bouton du clavier, je dessine l'image sélectionnée correspondante (iPhone-esque) sur le contrôleur de domaine de l'écran à l'aide de: GetDC (NULL). Il est développé en Win32 C ++.

Mon problème est que je ne peux jamais obtenir que l'écran se repeigne, effaçant la clé précédemment dessinée. J'ai essayé tout ce que je pouvais penser pour le forcer, :: RedrawWindow () avec tous les différents combos de paramètres utilisant NULL ou l'une des fonctions Get..Window comme HWND, et tous les combos d'indicateurs (INVALIDATE | UPDATENOW | ERASENOW | ALLCHILDREN etc). J'ai également essayé d'invalider le rect et de repeindre l'application sous-jacente à l'aide de :: GetActiveWindow et :: GetForegroundWindow, de variantes à l'aide de :: GetDesktopWindow, etc. Je suis essentiellement à court d'idées et c'est la dernière chose qui me retient l'utiliser sur mon appareil Windows Mobile. Quelqu'un a-t-il une idée? Toute aide serait grandement appréciée.

J'ai inclus des captures d'écran pour illustrer mon dilemme.

Avant la capture d'écran
après la capture d'écran

Avant http://img13.imageshack.us/img13/9861/cezoom1. png Après http://img3.imageshack.us/img3/7481/ cezoom2.png

Merci d'avance!

Était-ce utile?

La solution

Plutôt que d’attirer l’arrière-plan, pourquoi ne créez-vous pas une fenêtre temporaire et n’y dessinez-vous pas? Lorsque vous détruisez la fenêtre, l’arrière-plan doit être repeint automatiquement.

Je ne fais que deviner, car je ne connais pas Windows Mobile, mais il est possible que Windows mette en cache la dernière chose dessinée dans le contrôleur de domaine et la repeinte chaque fois que vous invalidez la fenêtre.

Autres conseils

Avez-vous essayé InvalidateRect à l’écran hWnd?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top