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

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

GDI [D6, WinXP]


chi ©   (2003-12-02 13:15:00) 

Уважаемые мастераподскажите пожалуйста где достать информацию по GDI на уровне WIN32 ( в частности по работе с DC и HBitmap), хочу разобраться. Заранее благодарен.


chi   (2003-12-06 13:20:00) [1]


> miek ©   (06.12.03 12:43) [5]

все поверхностно там


miek   (2003-12-06 12:43:00) [2]

Как насчет MSDN Library


chi   (2003-12-06 01:22:00) [3]

Всем спасибо, Фень Юань, действительно хорошая книга, но в библиотеке нашей радиоакадемии ее нет, а магазине ее цена 340 р...непосильно для студента. Где можно достать исходники из этой книги, особенно 10 главы.Спасибо


dmk   (2003-12-02 19:46:00) [4]

Купи Фень Юаня "Программирование графики под Windows".
С доставкой всего 210 р.
http://shop.piter.com


Mihey   (2003-12-02 19:28:00) [5]

2 chi:

Всё ещё мучаешься с HBITMAP? Может это поможет:

{организует битмэп размером SX,SY;true_color}
procedure TMBitmap.Allocate(SX,SY:integer);
var DC:HDC;
begin
 if BM<>0 then DeleteObject(BM);   {удаляем старый битмэп, если был}
 BM:=0;  PB:=nil;
 fillchar(BI,sizeof(BI),0);
 with BI.bmiHeader do        {заполняем структуру с параметрами битмэпа}
 begin
   biSize:=sizeof(BI.bmiHeader);
   biWidth:=SX;  biHeight:=SY;
   biPlanes:=1;  biBitCount:=24;
   biCompression:=BI_RGB;
   biSizeImage:=0;
   biXPelsPerMeter:=0;  biYPelsPerMeter:=0;
   biClrUsed:=0;        biClrImportant:=0;

   FLineSize:=(biWidth+1)*3 and (-1 shl 2); {размер строки(кратна 4 байтам)}

   if (biWidth or biHeight)<>0 then
    begin
      DC:=CreateDC('DISPLAY',nil,nil,nil);
{замечательная функция (см.HELP), возвращает HBITMAP, позволяет сразу
разместить выделяемый битмэп в спроецированном файле, что позволяет
ускорять работу и экономить память при генерировании большого битмэпа}
{!}      BM:=CreateDIBSection(DC,BI, DIB_RGB_COLORS, pointer(PB), nil, 0);
      DeleteDC(DC);  {в PB получаем указатель на битмэп-----^^}
      if BM=0 then Error('error creating DIB');
    end;
 end;
end;


me   (2003-12-02 18:45:00) [6]

В любой классической книге по программированию под Windows (даже под WIN16, там мало что поменялось идеологически), например, у Пецольда (давно переведена на русский и часто упоминается в сети)


Наверх

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