Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
6-1079344815
Max_Ivanych
2004-03-15 13:00
2004.05.09
SMTP-клиент


1-1082638225
Yad
2004-04-22 16:50
2004.05.09
Из цифр в деньги


3-1081528134
iov13
2004-04-09 20:28
2004.05.09
MSSQL & ADO


1-1082604061
Sla
2004-04-22 07:21
2004.05.09
Режим доступа к файлу


9-1070877335
nexxiss
2003-12-08 12:55
2004.05.09
DirectX headers. компиляция





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский