Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.01;
Скачать: CL | DM;

Вниз

Bitmap   Найти похожие ветки 

 
Erl   (2005-10-27 22:28) [0]

Добрый вечер.
Уважаемые мастера, можно посмотреть пример как загрузить
через WINAPI Bitmap в форму,ср=озданную тоже WINAPI;
Спасибо.


 
Eraser ©   (2005-10-28 01:19) [1]


> Erl   (27.10.05 22:28)

В форму битмап загрузить нельзя.


 
vvvaaa   (2005-10-28 11:34) [2]


> Eraser ©   (28.10.05 01:19) [1]

Почему нельзя??? Очень даже можно!


var

 Handle:HWND;
 WinDC,BmpDC :hDC;
 hBMP: HBITMAP;
 fh,fw:longint;

...

procedure LoadBMP(winDC:HDC; FileName:string; var hBmp:HBitmap; var h,w:longint);
const tbmfh=sizeof(TBITMAPFILEHEADER);
     tbmih=sizeof(TBITMAPINFOHEADER);
var hfbm,hmem1,hmem2:THandle;
   bmfh:TBitmapFileHeader;
   bmih:TBITMAPINFOHEADER;
   lpbmi:pBitmapInfo;
   lpvBits:pointer;
   dwRead:dword;
begin
hfbm:=CreateFile(pchar(FileName),GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,FILE_ATTRIBUTE_READONLY,0);
ReadFile(hfbm,bmfh,tbmfh,dwRead,nil);
ReadFile(hfbm,bmih,tbmih,dwRead,nil);
hmem1:=GlobalAlloc(GHND,bmfh.bfOffBits-tbmfh);
lpbmi:=GlobalLock(hmem1);
lpbmi^.bmiHeader :=bmih;
w:=bmih.biWidth;
h:=bmih.biHeight;
ReadFile(hfbm,lpbmi^.bmiColors,bmfh.bfOffBits-tbmfh-tbmih,dwRead,nil);
hmem2:=GlobalAlloc(GHND,(bmfh.bfSize-bmfh.bfOffBits));
lpvBits:=GlobalLock(hmem2);
ReadFile(hfbm,lpvBits^,(bmfh.bfSize-bmfh.bfOffBits),dwRead,nil);
hBmp:=CreateDIBitmap(windc,bmih,CBM_INIT,pchar(lpvBits),lpbmi^,DIB_RGB_COLORS);
GlobalUnlock(hmem1);
GlobalUnlock(hmem2);
CloseHandle(hfbm);
end;

...
WM_PAINT:
   BitBlt(WinDC,0,0,fw,fh,BmpDC,0,0,srccopy);

...

 WinDC:=GetDC(Handle);                       //HWND of Form
 LoadBMP(WinDC,"test.bmp",hBMP,fh,fw);
 BmpDC:=CreateCompatibleDC(WinDC);
 SelectObject(BmpDC,hBMP);
 


 
Eraser ©   (2005-10-28 14:54) [3]


> vvvaaa   (28.10.05 11:34) [2]

Ну и где тут загрузка? Тут битмап прорисовывается на форме.


 
vvvaaa   (2005-10-28 16:07) [4]

Если "загрузка" и "прорисовывается на форме" не одно и тоже, то что такое загрузка?


 
Leonid Troyanovsky ©   (2005-10-28 16:30) [5]


> vvvaaa   (28.10.05 16:07) [4]
> Если "загрузка" и "прорисовывается на форме" не одно и тоже,
>  то что такое загрузка?


А, действительно - что?
И, более того, "загрузить в форму" (т.е., что-то, IMHO, металлургическое).

--
Regards, LVT.


 
Eraser ©   (2005-10-28 19:43) [6]


> Leonid Troyanovsky ©   (28.10.05 16:30) [5]

Имхо, чтобы загрузить что-то нужен буффер, куда это загружать. DC это не совсем то...



Страницы: 1 вся ветка

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
8-1122897689
MixAnOL
2005-08-01 16:01
2006.01.01
Определение длины звучания


2-1133787508
Officeman
2005-12-05 15:58
2006.01.01
Бинарный вид. Представление textfile-а


2-1134427743
kizam
2005-12-13 01:49
2006.01.01
создание файла


2-1134379571
barakuda
2005-12-12 12:26
2006.01.01
плавающая панель


2-1134568860
floxi
2005-12-14 17:01
2006.01.01
MonthCalendar & Memo