C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по PaintBox  (Прочитано 2102 раз)
Sergey1985
Участник


Сказали спасибо: +8/-1
Offline

Сообщений: 310


Вопрос по PaintBox
« : 05 Июль 2013, 10:51:09 »

Хочу перерисовать PaintBox через функцию InvalidateRect первым параметром которой является дескриптор этого самого PaintBox а (в данном случае) Вопрос : как его правильно получить? Пробовал так
HWND hWnd;
hWnd = PaintBox1->Canvas->Handle;
InvalidateRect(hWnd,NULL,false);
но в этом случае начинает перерисовываться все окно и исчезать еще в добавок
с заранее спасибо
Записан
Leex
Участник


Сказали спасибо: +132/-1
Offline

Сообщений: 577


Re: Вопрос по PaintBox
« Ответ #1 : 01 Август 2013, 00:23:02 »

во-первых, дескриптор у тебя не корректный, точнее корректный, но не тот:) Таким образом ты получаешь графический контекст (HDC), а  InvalidateRect принимает хэндл окна (HWND). Хоть это и одно и тоже с точки зрения типов, но смысловая нагрузка разная.
Во-вторых, тынц. Обрати внимание на ремарки
Записан
Sergey1985
Участник


Сказали спасибо: +8/-1
Offline

Сообщений: 310


Re: Вопрос по PaintBox
« Ответ #2 : 06 Август 2013, 14:44:23 »

а как правильно?
Записан
Leex
Участник


Сказали спасибо: +132/-1
Offline

Сообщений: 577


« Ответ #3 : 08 Август 2013, 22:29:31 »

Обычно у всех оконных компонентов есть свойство Handle,
т.е в твоем случае должно быть что-то типа
hWnd = PaintBox1->Handle
Но если мне не изменяет память, у PaintBox такого нет, значит попробуй получить хэндл родителя.
Проверить не могу среды под рукой нет.

на самом деле фраза
Цитировать
Хочу перерисовать PaintBox через функцию InvalidateRect
несколько не понятна. С помощью InvalidateRect ничего не перерисуешь, максимум затрешь фоном. эта функция всего лишь оповещает систему о той области, которая стала по разумению программы не валидной, и чтобы в последующем система  отослала окну сообщение WM_PAINT, в параметрах которого передала эту область. Непосредственно отрисовка идет в обработчике сообщения WM_PAINT.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.031 секунд. Запросов: 21.