Уважаемые, помогите разобратся с графикой. Нужно сделать: рисую квадрат (32x32) и нажимая UP DOWN LEFT RIGHT двигать его в соответств. стороны. по примерам я написал следующий код, но после перемещения старое положение квадрата не чистится и получается какая-то змейка.. но после свернуть\развернуть всё отрисовывается ок... ничего не пойм у, может кто нибудь обьяснит в чём косяк? []
Несколько проблем: 1. BitBlt() и InvalidateRect() не должны идти друг за другом. Если надо немедленно перерисовать: Код (Text): invoke InvalidateRect, hWnd, 0, 0 invoke UpdateWindow, hWnd 2. Перед DeleteDC() надо сначала вызвать SelectObject() и убрать hMemDC из контекста. В принципе, всё что надо сделать - это на нажатие стрелок изменить координаты и сделать перерисовку как показано в п. 1
Нуно созать кисть для начала. Потом закрасить все при помощи какой-то ф-ции. Не помню точнороде бы PatBlt или что-то такое.
Если на то пошло, имхо в данном случае (при перемещении объектов) лучше использовать ф-ции ImageList_... вместо BitBlt.
Замучился с этим рисованием... Примеры в инете либо не то, либо слишком замутные. Очень прошу помочь: как нарисовать обьект? как наримсовать тот же обьект, не стерев преведущий? Как сделать приоритет рисунка - отрисовал картинку фона, отрисовал поверх картинку, переместил её в другое место, и фон не стёрт. Как нарисовать одну и ту-же картинку (LoadImage 1 раз) в окне не один раз? Вообщем моя задача - зарисовать картинкой (фон) 32x32 окно 224x224 и создать поверх другую картинку (player) 32x32 и сделать его перемещяемым. Очень прошу помочь.
Freecod заново предыдущий нарисуй Freecod invoke LoadImage ... mov hBitmap,eax Freecod invoke CreatePatternBrush,hBitmap invoke SelectObject,DC окна,eax invoke DeleteObject,eax ;надо удалить старый битмап invoke Rectangle,.....и окно закрасится hBitmap-ом PS надо было подавать в wasm.beginners