![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
Суть такова:
решил динамичски менять способ копирования с одного HDC в другой....Но почему то получается что окну по барабану что я меняю последний параметр для StretchBlt и посылаю окну WM_PAINT... case WM_PAINT: { ...getDC etc) StretchBlt( hMainDC, 0, 0, MainWndWidth, MainWndHeight, hSrcDC, 0, 0, 1024, 768, PaintMode ); break; OnTimer( void ) { PaintMode = SRCAND; SendMessage( hLockWnd, WM_PAINT, 0, 0 ); } После срабатывания таймера - окно получает ,обрабатывает но ничего на выводе не меняется. Почему так, что я не правильно сделал?? Добавлено через 10 минут и 55 секунд да к стати я вот пробовал перед StretchBlt сделать еще BitBlt( ...hBackDC...) ну сто бы зарисовать фон чем небудь - тоже не перерисовывает.....Эти BitBlt и StretchBlt - как вообще копирую - полностью? Например - на одном DC нету картинки - только кисть и на другом такая же ситуация - они перерисуютс?? Или для тех БЛТ-шок надо именно битмапы?? |
|||
|
||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
Ну как бы уже есть прогресс, но все равно не работает как надо...теперь уже PatBlt, им я решил затирать перед выводом новой картинки, но не хочет он правильно работать....
Как я понял его задание брашом выбраного контекста зарисовать его прямоугольник...Но браш у меня синий, а рисует белым ![]() Вот просьба - подскажите пожалуйста Как правильно менять картинку на HDC, но таким образом что бы перед тем HDC очищалось от предыдущей картинки,например закрасить черным.... Зарание благодарен.... |
|||
|
||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
http://forum.sources.ru/index.php?showtopic=38432
вроде нашел, завтра(сегодня)) посмотрю - всем спасибо за внимание.) Приятного вам воскресенья! |
|||
|
||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
я видать ошибся - НИЧЕГО НЕ ПОЛУЧАЕТСЯ!!!! ХЕЛП!!!!
на данный момент получается что раз копирует DC а второй возвращает 0 - ошибка((( как правильно?? ПАМАГИТЕ!!! мой галава уже не способна сама понять где она - сабака та зарыта ![]()
Зарисовывает зелёным, чё так не понимаю - зачем тогда указывать цвет закраски, если закрашиваем брашем....Потом все как нужно копирует и получается картинка на главном DC. Таймером меняю PaintMode и вот тебе - ExtFloodFill возвращает ошибку. Вычитал что: "Only memory device contexts and devices that support raster-display operations support the ExtFloodFill function" как понял - исключительно с CreateCompatibleDC(hMainDC), решил сделать третий - промежуточный DC все работает без ошибок, но ничего не меняется - как был синим так и остался...(синий потому что в классе указал синий браш) Помогите , пожайлуста - не могу я сам справится уже.... |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
В коде рисования я не разбиралась, но посылать WM_PAINT через SendMessage - нонсенс. Ничего не произойдет (т.к. нет невалидных областей). Нужно делать Invalidate, тогда WM_PAINT придет в свое время.
-------------------- ... |
|||
|
||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
скажу что сообщение приходит и один раз норм срабатывает, может действительно из-за того что нельзя WM_PAINT посылать внаглую... Сделал инвалидейт и все гуд!! Спасибо!!! Долго я бы еще мучался
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |