![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как Bitmap поместить на DC? [D5, D6, WinXP]
Th © (2002-10-02 20:20:00)Подскажите плз. Есть BMP:HBitmap. Надо в методе Paint компонента вывести этот BMP на компонент. Какой это функцией лучше сделать, а то не хочется лишний DC создавать для BitBlt
SPeller (2002-10-04 13:38:00) [1]
> 2 SPeller почитай хелп на wm_paint
Передаётся DC на котором ресуют?? Да ради бога. Тогда попробуй обходясь одним этим ДС, не создавая временных, нарисовать битмап на нём.
Удачи.
Evgeny (2002-10-04 05:18:00) [2]>Просто вместо CreateCompatibleDC(0) использовал GetDC(0)
Гланды тоже можно удалять через одно место...
Diamond Cat (2002-10-04 03:28:00) [3]2 SPellerпочитай хелп на wm_paint
Th (2002-10-03 18:03:00) [4]> han_malign (03.10.02 14:41)
> может он про это(а то не понятно что же нужно)
Нет я немного не про это ;)) МЕтодами канваса пользоваться как-то западло, извините за выражение.
Вообще, всем спасибо - проблему я решил. Просто вместо CreateCompatibleDC(0) использовал GetDC(0) из-за ничего не получалось с SelectObject и пришлось искать обходные пути. Сейчас все пашет ;)
han_malign (2002-10-03 14:41:00) [5]может он про это(а то не понятно что же нужно)
var bm: TBitmap;
begin
bm.Handle:=BMP;
Canvas.Draw(0,0,bm);
bm.free;
end;
k (2002-10-03 13:19:00) [6]в wm_paint передается dc окна, требующего прорисовки
чтоб сделать ч-л с BMP надо сделать его активным на к-н dc,
и оперировать уже с ним
var dc:HDC;
OldHandle:HBITMAP;//старый Handle
dc := GetCompatibleDC(0);
OldHandle := SelectObject(dc, BMP);
//операции копирования BitBlt и т п
SelectObject(dc,OldHandle);// наверное можно и без этого, но хуже не будет
DeleteDC(dc);
Th (2002-10-03 12:06:00) [7]А как сразу из битмапа вывести?
Юрий Зотов (2002-10-03 11:44:00) [8]А почему не сразу из битмапа?
SPeller (2002-10-03 10:26:00) [9]
> Юрий Зотов © (03.10.02 02:17)
По-моему всё-таки придётся создать ещё один DC, прикрепить к нему битмап, и из него уже копировать на Canvas.Handle
Юрий Зотов (2002-10-03 02:17:00) [10]Canvas.Handle, и ничего создавать не надо.
SPeller (2002-10-03 01:24:00) [11]
> Diamond Cat © (02.10.02 23:48)
Первый раз о таком слышу.
Вообще, всегда создаётся временный DC и из него копируется на DC который на экран выводит.
Diamond Cat (2002-10-02 23:48:00) [12]надо в сообщении wm_paint подменять hdc на свой. не помню точно но вроде это wparam