| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Рисуем в WM_MOUSEMOVE |
| Автор: MAXIQ 1.4.2008, 03:03 | ||
Здрасте! Люди, объясните пожалуйста почему при рисовании текста в WM_MOUSEMOVE текст отображается все время поверх предыдущего текста без стирания да еще и с прицепом в виде каких-то символов, хотя должны были быть только цифры. Вот код
Пробовал всяких сообщений окну посылать.... ничего этот текст не берет... Как мазал сам по себе так и мажет, в конце, если поерзать мышой достаточно долго превращается в черные прямоугольники. И прицеп в виде символа пробела и еще какой-то хрени за ним берется не пойми откуда, ведь на выходе должно быть только число((( |
| Автор: Andrey44 1.4.2008, 07:41 |
| Ну во-первых рисовать правильнее и лучше в WM_PAINT. А во-вторых тогда делай хотя-бы перед выводом текста InvalidateRect(..................) |
| Автор: Pulse69 1.4.2008, 07:47 | ||||
Здесь выход за границу массива. Сначала объявляется массив длиной в 1 байт (завершающий ноль), потом в него записываются несколько байт (строковое представление числа). Пропробуйте написать что-нибудь типа
Может, в этом проблема с паразитными символами. |
| Автор: MAXIQ 1.4.2008, 12:49 | ||
| Текст мазать по себе перестал, однако прицеп в символах остался( Новый код: StrX и StrY объявлены глобально как StrX[3],StrY[3] так как не выходят за рамки трехзначного числа. Еще объявлен еще один екземпляр структуры RECT rRectText. Однако если меньше, то вылят опять спонтанные каракули. есть там конечно символ пробела, сразу за координатами, и можно на него цикл поставить, отловить и обрезать строку, но это ж криво будет, может знает кто как нормально разрулить ситуацию?
|
| Автор: Andrey44 1.4.2008, 14:42 |
| TextOut(hDC,Rect.left+600,Rect.top,StrX,strlen(StrX)); |
| Автор: MAXIQ 2.4.2008, 02:02 |
| Ура, однако!! правда был прикол с инициализацией строки нулями в самом начале. И вылазили координаты по Х а потом 000Window, но если без инициализации то нормал! Спасибо за участие! |