Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.18;
Скачать: CL | DM;

Вниз

Загрука и отображение bitmap   Найти похожие ветки 

 
Sinus ©   (2006-08-14 18:43) [0]

Привет всем
необходимо загрузить битмап из ресурса ( я использовал LoadBitmap)   и нарисовать (отобразить его на форме).
Форма написана на АПИ и Санвас -а у нее нет.
если можно общий ход решения и функции для реализации,
и вопрос в тему... как вообще отображать рисунки на кнопках и едитах. про то что используется DC я уже сам сообразил..


 
Leonid Troyanovsky ©   (2006-08-14 21:37) [1]


> Sinus ©   (14.08.06 18:43)  

> необходимо загрузить битмап из ресурса ( я использовал LoadBitmap)
>   и нарисовать (отобразить его на форме).
> Форма написана на АПИ и Санвас -а у нее нет.


Во-первых, формы написанные на АПИ, есть тоже, что формы VCL.
Бо, ничего более (объектной оболочки) и представить сложно.
Если это, конечно, формы, а не, скажем, окна.

Во-вторых, ресурсы бывают разные.
Скажем, в exe. Или в длл.

--
Regards, LVT.


 
DVM ©   (2006-08-14 23:12) [2]


> необходимо загрузить битмап из ресурса ( я использовал LoadBitmap)

Раз использовал, значит загрузил. HBITMAP получил?
DC окна, я полагаю, тоже имеется?

тогда как то так:

procedure DrawBitmap(dc: HDC; hBitmap: HBITMAP; xStart, yStart: integer); stdcall;
var
 bm: BITMAP;
 hdcMem: HDC;
 ptSize, ptOrg: TPoint;
begin
 if dc <> 0 then
   begin
     hdcMem := CreateCompatibleDC(dc);
     if (hdcMem <> 0) and (hBitmap <> 0) then
       begin
         SelectObject(hdcMem, hBitmap);
         SetMapMode(hdcMem, GetMapMode(dc));
         GetObject(hBitmap, sizeof(BITMAP), @bm);
         ptSize.x := bm.bmWidth;
         ptSize.y := bm.bmHeight;
         DPtoLP(dc, ptSize, 1);
         ptOrg.x := 0;
         ptOrg.y := 0;
         DPtoLP(hdcMem, ptOrg, 1);
         BitBlt(dc, xStart, yStart, ptSize.x, ptSize.y, hdcMem, ptOrg.x, ptOrg.y, SRCCOPY);
         DeleteDC(hdcMem);
       end;
   end;
end;

P.S Нет в WinAPI никаких форм. Форма - это понятие Delphi


 
jTommy   (2006-11-03 00:30) [3]

Хотелось бы уточнить, подпрограмма DrawBitmap предназначена только для рисования в окне приложения или в элементах управления тоже должна работать?

Элемент управления создаю во время выполнения:
[code]
 imBanner:=CreateWindowEx(0, "STATIC", "", WS_VISIBLE or WS_CHILD or SS_BITMAP, 0, 0, 400, 64, MainWnd, id_imBanner, hInstance, nil);
 // Получаю контекст, результат не 0
 bDC:=GetDC(imBanner);
 // Загружаю растр, результат тоже не 0
 hbmp:=LoadBitmap(hInstance, "BANNER1");
 // Внутри подпрограммы тоже никаких ошибок не возникает
 DrawBitmap(bDC, hbmp, 0, 0);
[/code]
В результате изображения не видно :(.


 
Ketmar ©   (2006-11-03 01:38) [4]

>[2] DVM(c) 14-Aug-2006, 23:12
а зачем столько лишних телодвижений?


 
Ketmar ©   (2006-11-03 01:39) [5]

>[3] jTommy 3-Nov-2006, 00:30
а какого ангела его должно быть видно? не пробовал о обработчике событий рисовать, а?

книжки, барин, -- они рулёз.


 
@!!!ex   (2006-11-03 08:51) [6]

Удалено модератором
Примечание: Нарушаешь


 
DVM ©   (2006-11-03 10:02) [7]


> а зачем столько лишних телодвижений?

Так у Петзольда написано. И у Юаня похоже. А какие телодвижения вызывают вопрос?


 
Ketmar ©   (2006-11-03 10:44) [8]

>[7] DVM(c) 3-Nov-2006, 10:02
>А какие телодвижения вызывают вопрос?
все, кроме BitBlt(). %-)


 
DVM ©   (2006-11-03 10:53) [9]


> все, кроме BitBlt()

BitBlt не работает с битмапами, она работает с DC - отсюда все телодвижения.


 
Ketmar ©   (2006-11-03 10:56) [10]

>[9] DVM(c) 3-Nov-2006, 10:53
>BitBlt не работает с битмапами, она работает с DC - отсюда
>все телодвижения.
а, блин! извиняюсь. спать надо больше. протупил я что-то.


 
jTommy   (2006-11-03 17:52) [11]


> Ketmar ©   (03.11.06 01:39) [5]
> книжки, барин, -- они рулёз.

Знаю я, что они рулез, вот только по программированию (именно программированию) в Win32 что-то книг особо не видно. Может я давно в книжном не появлялся? :)

P.S.: Свою проблему решил через SS_OWNERDRAW и WM_DRAWITEM.


 
Ketmar ©   (2006-11-04 23:15) [12]

>[11] jTommy 3-Nov-2006, 17:52
>Знаю я, что они рулез, вот только по программированию (
>именно программированию) в Win32 что-то книг особо не
>видно. Может я давно в книжном не появлялся? :)
интернет крысы съели?


 
DVM ©   (2006-11-05 10:35) [13]


> Знаю я, что они рулез, вот только по программированию (именно
> программированию) в Win32 что-то книг особо не видно.

www.natahaus.ru



Страницы: 1 вся ветка

Текущий архив: 2007.03.18;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.048 c
15-1172087527
Соня
2007-02-21 22:52
2007.03.18
Кто возьмется написать прораммку? небесплатно


1-1169493165
raqy.style
2007-01-22 22:12
2007.03.18
Отрисовка списков.


5-1149955795
Alextp
2006-06-10 20:09
2007.03.18
Мерцание при обработке Resize


3-1166758240
NovaC
2006-12-22 06:30
2007.03.18
INSERT INTO через ADOConnection.Execute


15-1171341896
Demon__
2007-02-13 07:44
2007.03.18
Убрать интернет с сервака