Главная страница
    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.039 c
1-1082476978
jiuraf
2004-04-20 20:02
2004.05.09
Как скопироватьсодержимое RichEdit1 В RichEdit2?


14-1082558962
Frozzen
2004-04-21 18:49
2004.05.09
Объявление процедуры


3-1081842986
avgur
2004-04-13 11:56
2004.05.09
Константы для Delphi 6.0


3-1081949308
Term
2004-04-14 17:28
2004.05.09
Как программно получить информацию о ROLE


1-1082944483
zsv
2004-04-26 05:54
2004.05.09
Запуск *.bat





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