Форум: "WinAPI";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c