Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-1133939232
GR
2005-12-07 10:07
2006.01.01
Как быть со следующим поколением?


8-1122897689
MixAnOL
2005-08-01 16:01
2006.01.01
Определение длины звучания


14-1134125925
Ксардас
2005-12-09 13:58
2006.01.01
После написания каких программ я могу считать, что чего-то...


14-1133959879
DVM
2005-12-07 15:51
2006.01.01
Загадочная ситуация с трафиком Интернет


2-1134671955
oleggar
2005-12-15 21:39
2006.01.01
threads





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский