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

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

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2009, 13:03   #1
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию цветовой ключ на WinApi ?

Чувствую какой-то пробел в своих знаниях по поводу графики на GDI (WinApi). Чтобы окончательно прояснить для себя что это такое, решил написать игрушку (типа золотоискателя).

Вопрос банальный, поэтому заранее извиняюсь. Не, ну я правда по форуму поискал и не нашёл. А эти две темы для начинающих они уже очень огромные и я их не осилил.
Собственно вопрос - как задать для битмапа цветовой ключ на WinApi?
Изображения
Тип файла: bmp 1111.bmp (3.6 Кб, 143 просмотров)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 11.05.2009, 14:45   #2
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Код:
function LoadBMPFromFile(FileName: pChar; wnd: HWND): HDC;
var
  hBitmap,hOldBitmap: THandle;
  DC: HDC;
begin
  Result:=0;
  hBitmap:=LoadImage(HInstance, FileName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
  if hBitmap=0 then exit;
  dc:=GetDC(wnd);
  Result:=CreateCompatibleDC(dc);
  hOldBitmap := SelectObject(Result, hBitmap);
  ReleaseDC(wnd,dc);
  DeleteObject(hBitmap);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  hBMP:=LoadBMPFromFile('1111.bmp', Handle);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  //BitBlt(getdc(Handle),0,0,88,80, hBMP, 0, 0, SRCCOPY);
  TransparentBlt(getdc(Handle), 0, 0, 88, 80, hBMP,  0, 0, 88, 80, RGB(0,0,0));
end;
Но TransparentBlt не поддерживается в ОС 95,98,Me.
Kostia вне форума Ответить с цитированием
Старый 11.05.2009, 17:30   #3
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Спасибо, Kostia, заработало.

Цитата:
Но TransparentBlt не поддерживается в ОС 95,98,Me.
А если я с собой буду таскать и динамически буду подгружать библиотеку msimg32.dll ?

Проверьте кто нибудь у кого 98-ая есть, работать будет ?
Вложения
Тип файла: rar LodeRuner.rar (8.1 Кб, 13 просмотров)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru

Последний раз редактировалось Ulex; 11.05.2009 в 19:07.
Ulex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Максимальный ключ в таблице REztor Помощь студентам 1 05.04.2009 00:08
Ключ на ДЕЛФИ 5! sting Помощь студентам 1 28.03.2009 04:43
Загрузка цветовой гаммы RichEdit ScreN Компоненты Delphi 8 14.02.2009 11:47