2010-02-10 7 views
1

J'essaye de créer la liste déroulante dessinée par propriétaire sur Windows Mobile 6.1 J'ai spécifié le style LBS_OWNERDRAWFIXED tout en créant le contrôle de boîte de liste. Je gère WM_MEASUREITEM et WM_DRAWITEM en conséquence.Comment modifier dynamiquement la hauteur de la liste déroulante dessinée par le propriétaire dans Windows Mobile?

Je souhaite modifier la hauteur de l'élément de la liste à chaque fois que sa police change (je la modifie en utilisant WM_SETFONT après avoir créé le contrôle). Le problème est que le message WM_MEASUREITEM est envoyé une seule fois. J'ai besoin d'un moyen de générer à nouveau le message WM_MEASUREITEM afin que je puisse définir la hauteur de l'élément à la hauteur de la police. J'ai vu l'article http://www.codeguru.com/Cpp/controls/listview/advanced/article.php/c1013/, mais il utilise MFC, alors que je développe ce contrôle directement en utilisant WINAPI. Certains articles mentionnent que le redimensionnement du contrôle génère à nouveau un message WM_MEASUREITEM. Cependant, il n'est pas généré dans mon cas.

S'il vous plaît laissez-moi savoir est-il un moyen d'y parvenir dans Windows Mobile.

Répondre

0

Il n'y a rien de particulièrement MFC dans ce code. OnSetFont gère simplement WM_SETFONT. MeasureItem gère, dans MyListCtrl, le WM_MEASUREITEM envoyé à son parent.

En ce qui concerne la génération d'un nouveau WM_MEASUREITEM lorsque vous redimensionnez la fenêtre, ne pouvez-vous pas simplement envoyer un SendMessage lors de la gestion de WM_SIZE/WM_SIZING?

+0

Merci pour la réponse Goz. J'ai essayé d'utiliser SendMessage directement et j'ai généré des messages WM_MEASUREITEM & WM_DRAWTEM. Dans le gestionnaire WM_MEASUREITEM, j'ai modifié la hauteur de l'élément. Toutefois, cette hauteur modifiée n'était pas reflétée dans les messages WM_DRAWITEM suivants. En ce qui concerne le redimensionnement de la fenêtre, je n'ai pas besoin de redimensionner la fenêtre. J'essayais juste de l'utiliser pour générer WM_MEASUREITEM. Pouvez-vous suggérer s'il vous plaît n'importe quelle autre manière de changer la taille de l'article? – Nilesh

Questions connexes