Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как рисовать в статике используя двойную буферизацию? [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()


Наверх

Титульная страница Поиск, карта сайта Написать письмо