Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2011, 19:10   #1
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию Вывести Bitmap на WinAPI

Пишу на дельфи, программа GUI WinAPI. Только начал изучать. Подскажите, как загрузить из файла и вывести на форму bitmap?

Код:
Program Api;

uses
  Windows, Messages, SysUtils;

var
 window: TWndClassEx;
 Mwindow: HWND;
 Mmsg: MSG;
// Cmd: TButton;

// Процедура обработки сообщений
function WindowProc(wnd: HWND; msg: integer;  wparam: WPARAM; lparam: LPARAM):LRESULT;STDCALL;
begin
 case msg of
  WM_Destroy:
   begin
    PostQuitMessage(0);
    Result:=0;
    Exit;
   end;
   else
    Result:=DefWindowProc(wnd,msg,wparam,lparam);
 end;
end;

// Ристрация созданого класса
begin
 window.cbSize     :=sizeof (window);
 window.style      :=CS_HREDRAW or CS_VREDRAW;
 window.lpfnWndProc:=@WindowProc;
 window.cbClsExtra :=0;
 window.cbWndExtra :=0;
 window.hInstance  :=HInstance;
 window.hIcon      :=LoadIcon (0,IDI_APPLICATION);
 window.hCursor    :=LoadCursor (0,IDC_ARROW);
 window.hbrBackground:=Color_BtnFace+12;
 window.lpszMenuName :=nil;
 window.lpszClassName:='Main_Window';
 RegisterClassEx (window);
 // Создание окна на основе созданного класса
 Mwindow:=CreateWindowEx(0,'Main_Window','First_WinAPI_Program',WS_OVERLAPPEDWINDOW,100,100,300,300,0,0,Hinstance,nil);
 // Показать созданное окно
 SHOWWINDOW(Mwindow,SW_Show);
  // Цикл обработки сообщений
 while GetMessage(Mmsg,0,0,0) do
  begin
   TranslateMessage(Mmsg);
   DispatchMessage(Mmsg);
  end;
end.
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Старый 19.08.2011, 14:21   #2
navodri
Пользователь
 
Аватар для navodri
 
Регистрация: 20.04.2011
Сообщений: 11
По умолчанию

вот так

Код:
const
 ID_STATIC = 200;

var
 hBMP: hBitmap;

//////

hBMP := LoadImage(hInstance, PChar('C:\Pic1.bmp'), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
SendDlgItemMessage(hWin, ID_STATIC, STM_SETIMAGE, IMAGE_BITMAP, hBMP);
Как научиться электронике?
http://radiobook.ho.ua/
navodri вне форума Ответить с цитированием
Старый 19.08.2011, 14:34   #3
SnX
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 114
По умолчанию

http://www.rsdn.ru/article/qna/gdi/drawimg.xml
Можно еще через LoadImage или LoadBitmap( если картинку в ресурсы положить) или вообще вручную загружать файл и делать CreateBitmap, а затем через GDI нарисовать на форме ( GetDC => SelectObject => BitBlt ).
SnX вне форума Ответить с цитированием
Старый 19.08.2011, 18:23   #4
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

Спасибо

А как на этот битмап вывести текст TextOut? Как задать шрифт и его свойства и отобразить на битмапе?
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Старый 21.08.2011, 07:39   #5
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Нужно сначало создать шрифт: CreateFontIndirect.
А потом уже выбрать его в контексте устройства или памяти - SelectObject.
An1ka вне форума Ответить с цитированием
Старый 21.08.2011, 10:00   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://programmersforum.ru/showpost....02&postcount=2
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
bitmap Strumok C# (си шарп) 1 13.04.2011 10:52
Bitmap _-Re@l-_ Мультимедиа в Delphi 2 21.07.2010 19:08
из-за чего появляется полоса (на скрине) при вставке BitMap в TImage? - Проблема с Bitmap Grey@2009 Мультимедиа в Delphi 2 02.01.2010 20:23
Bitmap? HunterMan Общие вопросы .NET 7 27.12.2008 19:02
работа с Bitmap AlexandrL Мультимедиа в Delphi 2 16.04.2007 01:01