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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
7-87173
opoloXAI
2002-11-16 19:06
2003.01.27
AutoRun Windows


6-87016
andy_inc
2002-11-28 12:49
2003.01.27
Вызов формы


9-86606
Vetty
2002-07-27 18:31
2003.01.27
ДВИЖЕНИЯ!!!!!!!!!!!!!!!!!!!!!


1-86880
SpyX
2003-01-18 17:10
2003.01.27
Директория программы


14-87076
Maksss
2003-01-09 02:49
2003.01.27
вопрос в тему?





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