![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как рисовать в статике используя двойную буферизацию? [D7, WinXP]
kalexi © (2008-08-03 15:10:00)Нужно рисовать (допустим скроллирующийся текст) в Static'е при этом вначале надо отрисовывать в памяти, а потом в статик.
Как это сделать с Canvas я понимаю, а как без? Т.е. как можно сделать в памяти что-то типа Canvas и рисовать в нем, а потом переносить в Static?
slow!alfamoon!com (2008-08-04 16:26:00) [1]
> http://www.gotdotnet.ru/Downloads/Examples/Downloads_GetFile.
> aspx?id=290358
Прошу пардону, ссылко неверное
http://slow.alfamoon.com/?module=filesdb&id=4&fid=1&get=1
slow!alfamoon!com (2008-08-04 16:23:00) [2]Там несложно, могу дать сырцов, но на с#, на дельфи не делал
http://www.gotdotnet.ru/Downloads/Examples/Downloads_GetFile.aspx?id=290358
slow!alfamoon!com (2008-08-04 16:20:00) [3]Если хочется книжку почитать, то велкоммен в яндекс за книжкой Фень Юаня
Игорь Шевченко (2008-08-04 15:52:00) [4]
> Да, это я понял, как мне нарисовать в памяти что-либо и
> вывести в статик?
RTFM: CreateCompatibeDC, CreateBitmap, SelectObject
kalexi (2008-08-03 19:11:00) [5]Да, это я понял, как мне нарисовать в памяти что-либо и вывести в статик?
Т.е. что надо создать в памяти, чтобы можно выло сделать в него вывод TextOut и как его передать функции BitBlt?
Rouse_ (2008-08-03 18:46:00) [6]BitBlt требует DC, а не HBITMAP
kalexi (2008-08-03 18:40:00) [7]Переправил на:
BitBlt(GetDC(GetDlgItem(Win,LOGO_IMG)), 0, 0, 200, 67, GetDC(0),0, 0, SRCCOPY);
Нормально рисует рабочий стол, но не хочет рисовать HBitmap.
kalexi (2008-08-03 17:34:00) [8]Нужно на апи сделать.
Я просто впервые сталкиваюсь с рисованием и копированием битмапов.
Допустим так:
var
buf:HBitmap;
begin
buf := CreateBitmap(200,67,1,1, nil);
Ellipse(buf,10,10,100,100);
BitBlt(GetDlgItem(Win,LOGO_IMG), 0, 0, 200, 67, buf, 0, 0, SRCCOPY);
Не работает, понимаю, что дело в BitBlt, точнее в тех параметрах которые я ей передаю. Что пропустил?
Rouse_ (2008-08-03 16:53:00) [9]Что значит как? Создаешь его, и производишь отрисовку на его канвасе. Если не хочешь использовать VCL обертку - то флаг в руки, смотри АПИ CreateBitmap()
kalexi (2008-08-03 16:34:00) [10]Вопервых как рисовать в TBitmap? Я использую только Windows, Messages и CommDlg библиотеки.
Rouse_ (2008-08-03 15:50:00) [11]рисуешь сначала на том-же TBitmap и в самом конце BitBlt()