Главная страница
    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.034 c
1-1082484754
s666
2004-04-20 22:12
2004.05.09
Как совместить два типа PChar и String


8-1076758014
iudjen
2004-02-14 14:26
2004.05.09
проиграть файл задним ходом


14-1082123506
juiceman
2004-04-16 17:51
2004.05.09
Помогите найти Ketmara


3-1081934475
human
2004-04-14 13:21
2004.05.09
Direct Oracle Access


1-1082739764
Alex-21
2004-04-23 21:02
2004.05.09
TImage & TImageList





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