J'essaie de surveiller la position de la souris sur la zone client de la fenêtre. par exemple:Invalider ou ajouter du texte
WM_MOUSEMOVE:
{
std::ostringstring oss;
xPos = LOWORD(lParam);
yPos = HIWORD(lParam);
oss << xPos << ", " << yPos;
TextOut(hDC, 100, 100, oss.str().c_str(), oss.str().size());
}
Ai-je besoin de mesurer la hauteur, la largeur des polices pour obtenir la zone à effacer avant de tirer un nouveau texte? Je ne comprends pas si j'aurais besoin d'écrêtage pour redessiner la région ou juste invalider rect serait suffisant pour dessiner correctement le texte.
Serait-il possible de faire l'opération de dessin dans WM_PAINT pour que le texte soit redessiné? Parce que si je mets TextOut dans WM_PAINT cela invaliderait seulement l'ancienne zone écrite. – cnd
@cnd C'est la meilleure pratique pour mettre le 'TextOut' dans WM_PAINT, car Windows va régler le nombre de messages WM_PAINT que vous devez traiter. Vous devrez invalider un rectangle plus grand pour vous assurer que la nouvelle valeur a été affichée sans être coupée, ou peut-être invalider le contrôle entier. –