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

Вниз

Мессагу на экран.   Найти похожие ветки 

 
vidiv ©   (2002-11-11 12:37) [0]

Люди, помогите: как выдать на экран некоторый текст, и что бы через некоторое время он исчез. Мне надо, что бы железно работале и на нормальном (не ига) режиме, так и в режиме игры. т.е. я пытвюсь нарисовать на экране ( TextOut(Getdc(0),0,0,"..",n) ), но DirectX все стирает. Может есть какие нибудь другие пути решения этой задачи. Все это на D5 и под 9x


 
vidiv ©   (2002-11-12 02:11) [1]

Прям ни кто не знает, можно подумать? или ....!


 
apay ©   (2002-11-12 02:21) [2]

LockWindowUpdate( GetDesktopWindow );
Sleep( x );
LockWindowUpdate( 0 );

может понадобиться залокить еще и в DirectX.



 
vidiv ©   (2002-11-12 04:25) [3]

2apay
КАК залокить DirectX?


 
Song ©   (2002-11-12 09:02) [4]

Через сам же DirectDraw


 
vidiv ©   (2002-11-12 09:07) [5]

2Song
Я вообще чуть-чуть работал с DirectX но это было через DelphiX и естественно там особо думать не приходится, поэтому я вообще не знаю, какие там есть функции. Может лучше всего и использовать DirectX для вывода на экран, ведь некоторые программы это делают (например NVidia выдает свой логотип). Если будет не трудно, Song, скажи конкретнее, и(или) ссылочкой.


 
Song ©   (2002-11-12 09:19) [6]

Я не работал с DirectX


 
ggrisha ©   (2002-11-12 10:27) [7]

Нужно просто перерисовывать это сообщение почаще, т.к. не факт что игра будет в режиме DirectX.


 
vidiv ©   (2002-11-12 11:00) [8]

2ggrisha
Мы сейчас про это и говорим. Если выводить его по чаще он всеравно будет моргать.

А можно ли сделать так, что бы нарисовал, подвесил комп на время(забрать 100% времени проца), подождал и отпустил?


 
ggrisha ©   (2002-11-12 13:04) [9]

Чтобы не моргала синхронизуй вывод сообщения с вертикальной разверткой.


 
vidiv ©   (2002-11-12 15:52) [10]

2 ggrisha
А КАК?


 
BigDAN ©   (2002-11-12 17:53) [11]

Каковы методы синронизации вывода с разверткой, если не используешь DirectX? AFAIK используя GUI это сделать невозможно!


 
apay ©   (2002-11-12 22:53) [12]

как залокить DirectX:
я использовал DirectX.pas из http://www.ingjapan.ne.jp/hori/index-e.html
это должно выглядеть примерно так:

...
var
DDSD: TDDSurfaceDesc;
FddScreen: IDirectDrawSurface;
FddScreen: IDirectDrawSurface;
...
Rc := ... (bounds-rectangle of desired area);
...
try
if DirectDrawCreate( nil, FddInterface, nil ) <> DD_OK then Abort;
try
DDSD.dwSize := SizeOf(DDSD);
DDSD.dwFlags := DDSD_CAPS;
DDSD.ddsCaps.dwCaps := DDSCAPS_PRIMARYSURFACE;
if FddInterface.CreateSurface( DDSD, FddScreen, nil ) <> DD_OK then Abort;
try
DDSD.dwSize := SizeOf(DDSD);
DDSD.dwFlags := DDSD_CAPS;
DDSD.ddsCaps.dwCaps := DDSCAPS_PRIMARYSURFACE;
if FddScreen.Lock( nil, DDSD, DDLOCK_WAIT, 0 ) <> DD_OK then Abort;
try
...
Sleep( x );
...
finally
FddScreen.Unlock( nil );
end;
finally
FddScreen := nil;
end;
finally
FddInterface := nil;
end;
except
(error handling)
end;



 
vidiv ©   (2002-11-15 01:42) [13]

это не работает


 
apay ©   (2002-11-15 01:48) [14]

попробуй в добавок к этому сделать

LockWindowUpdate( GetDesktopWindow );

я когда-то писал фоновую программку, которая не давала другим рисовать, к сожалению исходники утеряны :(



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

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

Наверх




Память: 0.49 MB
Время: 0.013 c
3-86639
mao
2003-01-07 18:48
2003.01.27
Проблема с кодировкой при чтении записей из dbf-файла в разных ОС


14-87140
VictorT
2003-01-10 12:34
2003.01.27
Как выразить формулой?


1-86843
alexe
2003-01-16 09:51
2003.01.27
Почему то в файл текстовый не пишет ??


6-86990
kalishenko stas
2002-11-28 14:19
2003.01.27
Sockets и Internet


1-86839
error 2k
2003-01-18 23:32
2003.01.27
Пауза в программе