Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];

Вниз

Загрука и отображение 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.037 c
2-1172657373
Alex19
2007-02-28 13:09
2007.03.18
захват аудио


3-1166612920
KIR
2006-12-20 14:08
2007.03.18
Перенести данные из XL в InterBase


2-1172274829
koha
2007-02-24 02:53
2007.03.18
Клик мышью в TListView


3-1166797458
tytus
2006-12-22 17:24
2007.03.18
DOA 4.0.7 - Delphi7 - Oracle 10g Express Edition


8-1152770379
Officeman
2006-07-13 09:59
2007.03.18
gif в bmp (ищу утилиту)





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