Форум: "WinAPI";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизКак разместить Bitmap на форме API шными функциями? Найти похожие ветки
← →
BillyJeans © (2004-03-15 11:51) [0]Как разместить Bitmap на форме API"шными функциями?
← →
BillyJeans © (2004-03-15 11:51) [0]Как разместить Bitmap на форме API"шными функциями?
← →
MBo © (2004-03-15 12:03) [1]Выбрать битмап во временном контексте и bitblt
← →
MBo © (2004-03-15 12:03) [1]Выбрать битмап во временном контексте и bitblt
← →
BillyJeans © (2004-03-15 12:32) [2]HDC hdcSrc; //handle to source device context
Может ли hdcSrc быть TFileStream?
← →
BillyJeans © (2004-03-15 12:32) [2]HDC hdcSrc; //handle to source device context
Может ли hdcSrc быть TFileStream?
← →
MBo © (2004-03-15 13:10) [3]Нет.
В свете второго вопроса стало интересно - что имеется в виду под Bitmap?
← →
MBo © (2004-03-15 13:10) [3]Нет.
В свете второго вопроса стало интересно - что имеется в виду под Bitmap?
← →
BillyJeans © (2004-03-15 13:16) [4]в идеале BMP"ха засунутая в ресурс...
← →
BillyJeans © (2004-03-15 13:16) [4]в идеале BMP"ха засунутая в ресурс...
← →
Diamond Cat © (2004-03-15 13:41) [5]ну если просто залить окно при создании неким рисунком то
var
WndClassEx: TWndClassEx;
........................
WndClassEx.hbrBackground := HBRUSH(CreatePatternBrush(LoadBitmap(HInstance,"bitmap")));
.............
createwindowex(...,WndClassEx.....
← →
Diamond Cat © (2004-03-15 13:41) [5]ну если просто залить окно при создании неким рисунком то
var
WndClassEx: TWndClassEx;
........................
WndClassEx.hbrBackground := HBRUSH(CreatePatternBrush(LoadBitmap(HInstance,"bitmap")));
.............
createwindowex(...,WndClassEx.....
← →
Diamond Cat © (2004-03-15 13:42) [6]ну если просто залить окно при создании неким рисунком то
var
WndClassEx: TWndClassEx;
........................
WndClassEx.hbrBackground := HBRUSH(CreatePatternBrush(LoadBitmap(HInstance,"bitmap")));
.............
createwindowex(...,WndClassEx.....
← →
Diamond Cat © (2004-03-15 13:42) [6]ну если просто залить окно при создании неким рисунком то
var
WndClassEx: TWndClassEx;
........................
WndClassEx.hbrBackground := HBRUSH(CreatePatternBrush(LoadBitmap(HInstance,"bitmap")));
.............
createwindowex(...,WndClassEx.....
← →
Diamond Cat © (2004-03-15 13:42) [7]ну если просто залить окно при создании неким рисунком то
var
WndClassEx: TWndClassEx;
........................
WndClassEx.hbrBackground := HBRUSH(CreatePatternBrush(LoadBitmap(HInstance,"bitmap")));
.............
createwindowex(...,WndClassEx.....
← →
Diamond Cat © (2004-03-15 13:42) [7]ну если просто залить окно при создании неким рисунком то
var
WndClassEx: TWndClassEx;
........................
WndClassEx.hbrBackground := HBRUSH(CreatePatternBrush(LoadBitmap(HInstance,"bitmap")));
.............
createwindowex(...,WndClassEx.....
← →
BillyJeans © (2004-03-15 14:56) [8]а если не просто залить, на RunTime картинку на форму бросить...
hdcSrc := LoadBitmap(hInstance, "BMP");
bitblt(MainWnd, xPos, yPos, Width, height, hdcSrc, 1, 1, SRCCOPY);
что-то не хочет работать :(
← →
BillyJeans © (2004-03-15 14:56) [8]а если не просто залить, на RunTime картинку на форму бросить...
hdcSrc := LoadBitmap(hInstance, "BMP");
bitblt(MainWnd, xPos, yPos, Width, height, hdcSrc, 1, 1, SRCCOPY);
что-то не хочет работать :(
← →
Nick Denry © (2004-03-15 15:11) [9]Используй Drag-n-drop + LoadImage, Form1.canvas.handle и bitblt. Давай мыло -пришлю пример загрузки битмапа с диска. Драг-н-дроп найдешь где нить еще. Там не сложно...
← →
Nick Denry © (2004-03-15 15:11) [9]Используй Drag-n-drop + LoadImage, Form1.canvas.handle и bitblt. Давай мыло -пришлю пример загрузки битмапа с диска. Драг-н-дроп найдешь где нить еще. Там не сложно...
← →
BillyJeans © (2004-03-15 15:23) [10]2 Nick Denry ©
а пример без VCL слабо?
← →
BillyJeans © (2004-03-15 15:23) [10]2 Nick Denry ©
а пример без VCL слабо?
← →
Nick Denry © (2004-03-15 15:47) [11]BillyJeans. Не надо брать на слабо. тот участок кода который тебя интерсует-полностью на АПИ.
Если надо - то лови, а переписывать прогу полностью - это черезчур. вы сударь зарываеетесь..
procedure TForm1.Button1Click(Sender: TObject);
var
BMFile : HFILE;
Str : OFSTRUCT;
FS : DWORD;
Bmp : HBITMAP;
DelphiMap : TBitmap;
sz : TSize;
begin
//BMFile := windows.OpenFile("TEXTURE.bmp",str,OF_READ);
//FS := Windows.GetFileSize(BMFile,nil);
//Form1.Caption := IntToStr(FS);
BMP:=LoadImage(0,"TEXTURE.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE or LR_DEFAULTSIZE);
//Windows.CloseHandle(BMFile);
Delphimap := TBitmap.Create;
DelphiMap.Handle := BMP;
SetBitmapDimensionEx(BMP,256,256,@SZ);
GetBitmapDimensionEx(BMP,sz);
Form1.Caption := IntToStr(sz.cx);
Image1.Canvas.Draw(0,0,DelphiMap);
DeleteObject(BMP);
DelphiMap.Free;
end;
← →
Nick Denry © (2004-03-15 15:47) [11]BillyJeans. Не надо брать на слабо. тот участок кода который тебя интерсует-полностью на АПИ.
Если надо - то лови, а переписывать прогу полностью - это черезчур. вы сударь зарываеетесь..
procedure TForm1.Button1Click(Sender: TObject);
var
BMFile : HFILE;
Str : OFSTRUCT;
FS : DWORD;
Bmp : HBITMAP;
DelphiMap : TBitmap;
sz : TSize;
begin
//BMFile := windows.OpenFile("TEXTURE.bmp",str,OF_READ);
//FS := Windows.GetFileSize(BMFile,nil);
//Form1.Caption := IntToStr(FS);
BMP:=LoadImage(0,"TEXTURE.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE or LR_DEFAULTSIZE);
//Windows.CloseHandle(BMFile);
Delphimap := TBitmap.Create;
DelphiMap.Handle := BMP;
SetBitmapDimensionEx(BMP,256,256,@SZ);
GetBitmapDimensionEx(BMP,sz);
Form1.Caption := IntToStr(sz.cx);
Image1.Canvas.Draw(0,0,DelphiMap);
DeleteObject(BMP);
DelphiMap.Free;
end;
← →
BillyJeans © (2004-03-15 15:54) [12]Спасибо!
но я сделал вот так:
var
hdcSrc: HWND;
b: HBITMAP;
begin
b := LoadBitmap(hInstance, "BMP");
hdcSrc := CreateCompatibleDC(GetDC(MainWnd));
SelectObject(hdcSrc, b);
bitblt(GetDC(MainWnd), xPos, yPos, width, height, hdcSrc, 0, 0, SRCCOPY);
DeleteDC(hdcSrc);
end;
← →
BillyJeans © (2004-03-15 15:54) [12]Спасибо!
но я сделал вот так:
var
hdcSrc: HWND;
b: HBITMAP;
begin
b := LoadBitmap(hInstance, "BMP");
hdcSrc := CreateCompatibleDC(GetDC(MainWnd));
SelectObject(hdcSrc, b);
bitblt(GetDC(MainWnd), xPos, yPos, width, height, hdcSrc, 0, 0, SRCCOPY);
DeleteDC(hdcSrc);
end;
← →
Nick Denry © (2004-03-15 16:03) [13]Если в "рантайме на форму бросить" - то драг-н-дроп, а если просто разместить - то ты делал верно - через ресурс....
← →
Nick Denry © (2004-03-15 16:03) [13]Если в "рантайме на форму бросить" - то драг-н-дроп, а если просто разместить - то ты делал верно - через ресурс....
← →
YuRock © (2004-03-15 18:19) [14]> BillyJeans © (15.03.04 15:54) [12]
С таким кодом прога (да и вся система) долго не протянет - Вы контекст получаете 3 раза, а очищаете всего 1...
← →
YuRock © (2004-03-15 18:19) [14]> BillyJeans © (15.03.04 15:54) [12]
С таким кодом прога (да и вся система) долго не протянет - Вы контекст получаете 3 раза, а очищаете всего 1...
← →
BillyJeans © (2004-03-16 09:52) [15]Виноват, исправляюсь... ;)
hdcDst := GetDC(MainWnd);
hdcSrc := CreateCompatibleDC(hdcDst);
b := LoadBitmap(hInstance, "BMP");
SelectObject(hdcSrc, b);
bitblt(hdcDst, xPos, yPos, width, height, hdcSrc, 0, 0, SRCCOPY);
DeleteDC(hdcSrc);
ReleaseDC(MainWnd, hdcDst);
← →
BillyJeans © (2004-03-16 09:52) [15]Виноват, исправляюсь... ;)
hdcDst := GetDC(MainWnd);
hdcSrc := CreateCompatibleDC(hdcDst);
b := LoadBitmap(hInstance, "BMP");
SelectObject(hdcSrc, b);
bitblt(hdcDst, xPos, yPos, width, height, hdcSrc, 0, 0, SRCCOPY);
DeleteDC(hdcSrc);
ReleaseDC(MainWnd, hdcDst);
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.043 c