![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| MAXIQ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 30.12.2006 Репутация: нет Всего: нет |
Здрасте! Люди, объясните пожалуйста почему при рисовании текста в WM_MOUSEMOVE текст отображается все время поверх предыдущего текста без стирания да еще и с прицепом в виде каких-то символов, хотя должны были быть только цифры. Вот код
Пробовал всяких сообщений окну посылать.... ничего этот текст не берет... Как мазал сам по себе так и мажет, в конце, если поерзать мышой достаточно долго превращается в черные прямоугольники. И прицеп в виде символа пробела и еще какой-то хрени за ним берется не пойми откуда, ведь на выходе должно быть только число((( |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
Ну во-первых рисовать правильнее и лучше в WM_PAINT.
А во-вторых тогда делай хотя-бы перед выводом текста InvalidateRect(..................) -------------------- ????? ??, ??????? ?????. |
|||
|
||||
| Pulse69 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 28.4.2006 Где: Хабаровск Репутация: 8 Всего: 10 |
Здесь выход за границу массива. Сначала объявляется массив длиной в 1 байт (завершающий ноль), потом в него записываются несколько байт (строковое представление числа). Пропробуйте написать что-нибудь типа
Может, в этом проблема с паразитными символами. --------------------
Ctrl+Alt+Reset |
||||
|
|||||
| MAXIQ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 30.12.2006 Репутация: нет Всего: нет |
Текст мазать по себе перестал, однако прицеп в символах остался(
Новый код: StrX и StrY объявлены глобально как StrX[3],StrY[3] так как не выходят за рамки трехзначного числа. Еще объявлен еще один екземпляр структуры RECT rRectText. Однако если меньше, то вылят опять спонтанные каракули. есть там конечно символ пробела, сразу за координатами, и можно на него цикл поставить, отловить и обрезать строку, но это ж криво будет, может знает кто как нормально разрулить ситуацию?
|
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 8 Всего: 26 |
TextOut(hDC,Rect.left+600,Rect.top,StrX,strlen(StrX));
-------------------- ????? ??, ??????? ?????. |
|||
|
||||
| MAXIQ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 30.12.2006 Репутация: нет Всего: нет |
Ура, однако!! правда был прикол с инициализацией строки нулями в самом начале. И вылазили координаты по Х а потом 000Window, но если без инициализации то нормал! Спасибо за участие!
|
|||
|
||||
| Pulse69 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 28.4.2006 Где: Хабаровск Репутация: 8 Всего: 10 |
Если число трёхзначное, тогда нужно как минимум четрые символа в массиве, чтобы поместился завершающий ноль. --------------------
Ctrl+Alt+Reset |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |