Неверный или клип текст - PullRequest
       1

Неверный или клип текст

0 голосов
/ 16 ноября 2010

Я пытаюсь отслеживать положение мыши в клиентской области окна.например:

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());
}

Нужно ли мне измерять высоту и ширину шрифтов, чтобы получить область, которую нужно стереть, перед тем, как вывести новый текст?Я не понимаю, нужно ли мне обрезать область, чтобы перерисовать область, или просто сделать недействительным прямоугольник, будет достаточно для правильного рисования текста.

1 Ответ

1 голос
/ 16 ноября 2010

Каждый раз, когда вы рисуете какой-то текст, используйте GetTextExtentPoint32 , чтобы измерить размер написанной области и сохранить его где-нибудь.Затем, когда вы пытаетесь нарисовать что-то новое, вы можете передать прямоугольник, основанный на этом значении, в InvalidateRect, чтобы указать ваше желание стереть, затем UpdateWindow, чтобы стереть произошло немедленно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...