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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2010, 12:40   #1
TilerDerton
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 34
По умолчанию Отрисовка пикселей поверх всех окон

Добрый день.

Использую следующий код (нашел в похожей теме на форуме) для отрисовки прицела в игре:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  c: TCanvas;
begin
  while 1>0 do
    begin
    c := TCanvas.Create;
    c.Handle := GetDC(GetWindow(GetDesktopWindow, GW_OWNER));
    C.Pixels [640, 512]:= clRed;
    C.Pixels [640, 511]:= clRed;
    C.Pixels [640, 513]:= clRed;
    C.Pixels [641, 512]:= clRed;
    C.Pixels [639, 512]:= clRed;
    c.free;
    application.ProcessMessages;
    end;

end;
Практически на всех приложениях "крестик" виден, а игра его игнорирует. Но! Игнорирует только в полноэкранном режиме, в окне все в порядке. В чем может быть проблема?

Заранее спасибо.

Последний раз редактировалось TilerDerton; 28.09.2010 в 17:55.
TilerDerton вне форума Ответить с цитированием
Старый 28.09.2010, 12:57   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Игра использует ДиректХ
p51x вне форума Ответить с цитированием
Старый 28.09.2010, 13:57   #3
TilerDerton
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 34
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Игра использует ДиректХ
Другие игры его тоже используют, но в них прицел виден. Кроме того, проблема появляется только в полноэкранном режиме.
Может это важно - игра PointBlank.

Вариант на Апи, найденный в интернете тоже не работает поверх игры.
Код:
program AP;


uses
  Windows;
  var ScreenDC:HDC;
  x,y,t,i:integer;
begin
i:=0;
ScreenDC:=GetDC(0);
While i<500 do
begin
x:=640;
Y:=512;
t:=3;
Ellipse(ScreenDC,x,y,x+t,y+t);
Sleep(1);
end;
end.

Последний раз редактировалось TilerDerton; 28.09.2010 в 18:08.
TilerDerton вне форума Ответить с цитированием
Старый 29.09.2010, 01:47   #4
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Полноэкранный режим у DirectX - это не то же самое что форма без рамки во весь экран поверх всех окон...
При нём и не должно рисоваться...
Цитата:
для отрисовки прицела в игре
Это делается совершенно по другому...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 29.09.2010, 10:35   #5
TilerDerton
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 34
По умолчанию

Цитата:
Сообщение от DomiNick Посмотреть сообщение
Это делается совершенно по другому...
Может скажете, в какую сторону глядеть?
TilerDerton вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поверх всех окон timyr1997 Общие вопросы Delphi 12 05.08.2010 15:49
поверх всех окон blackstersl Общие вопросы Delphi 6 05.08.2010 15:36
поверх всех окон Temka Общие вопросы Delphi 4 31.05.2009 14:09
Поверх всех окон delphin100 Общие вопросы Delphi 2 19.04.2008 19:00
Поверх всех окон Патрон Общие вопросы Delphi 1 18.04.2008 16:57