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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2011, 14:16   #1
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
Злость Не работает условие!!!

Вот код:

Код:
void Process()
{

if (! (GetKeyState(VK_F11)  < 0)  )
 {
	KeyPress = true;
 };


//Create_Marker
if ( (GetKeyState(VK_F11) < 0)  &&  (KeyPress = true) )
   {
	 //srand ( GetTickCount() );
     MessageBeep(0);
	 DWORD Hm;
	 Hm = _Create_Marker(4, RandomRangeFloat(-1500.0, 1500.0),  RandomRangeFloat(-1500.0, 1500.0), 10.0, 1, 3);
	 _showMarkerOnRadar(Hm, 3);
	 char buf[300];
	 WORD Hw;
	 Hw = Hm;
	 sprintf(buf, 
		"%d = Handle, %d = ID, %d = id_color, %d = typeMarker, %d = entityHandle, %f = x_pos, %f = y_pos, %f = z_pos, %f, %f, %f, %d = f24, %d = f26, %d = inUse, %d = f28, %d = f29, %d = f2a, %d = f2b, %d = f2c, %d = scale, %d = f32, %d = IconId, %d = __padding" ,  

		Hm, Hw, _radarBlips[Hw].id_color, _radarBlips[Hw].typeMarker, _radarBlips[Hw].entityHandle, 
		_radarBlips[Hw].pos.x, _radarBlips[Hw].pos.y, _radarBlips[Hw].pos.z, _radarBlips[Hw].field_18.x,
		_radarBlips[Hw].field_18.y,_radarBlips[Hw].field_18.z, _radarBlips[Hw].field_24, _radarBlips[Hw].field_26,
		_radarBlips[Hw].inUse, _radarBlips[Hw].field_28, _radarBlips[Hw].field_29, _radarBlips[Hw].field_2A,
		_radarBlips[Hw].field_2B, _radarBlips[Hw].field_2C, _radarBlips[Hw].scale, _radarBlips[Hw].field_32,
		_radarBlips[Hw].iconID, _radarBlips[Hw].__padding);
	 //_radarBlips

	 file = fopen( "MarkerLog.txt", "a" ); 
	 fwrite(&buf, 300, 1, file);
	 fclose(file);

	 //MessageBoxA(0, buf, "Marker Info!", MB_OK);
	 KeyPress = false;
    };

};
Мне надо что-бы при нажатие F11 выполнился один раз код, а он автоматов выполняется!!!

Process() - помещена в таймер.
KeyPress - глобальная переменная!
VintProg вне форума Ответить с цитированием
Старый 11.08.2011, 14:42   #2
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Код:
void Process()
{
static bool KeyPress = false;

//Create_Marker
if ( GetKeyState(VK_F11)  &&  !KeyPress )
{
   KeyPress = true;
...
Так будет 1 раз выполняться код.

Последний раз редактировалось An1ka; 11.08.2011 в 14:45.
An1ka вне форума Ответить с цитированием
Старый 11.08.2011, 14:48   #3
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

(GetKeyState(VK_F11) < 0) && (KeyPress = true)

а в целом условие какое-то бессмысленное.

KeyPress устанвливается если кнопка не нажата
а первая часть условия срабытывает если кто-то удерживает кнопку.
при таком раскладе только таймер может оказывать влияние на результат.

Последний раз редактировалось f.hump; 11.08.2011 в 14:58.
f.hump вне форума Ответить с цитированием
Старый 11.08.2011, 14:49   #4
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Код:
static bool KeyPress = true;
- а экземпляры не будут создаваться, если положить его во внутрь процедуры??
VintProg вне форума Ответить с цитированием
Старый 11.08.2011, 14:52   #5
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от VintProg Посмотреть сообщение
Код:
static bool KeyPress = true;
- а экземпляры не будут создаваться, если положить его во внутрь процедуры??
static только 1 раз создается при первом вызове функции и сохраняется до конца работы программы.
An1ka вне форума Ответить с цитированием
Старый 12.08.2011, 04:40   #6
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Блин раньше надо было сказать что ставить ==

Код:
if ( (GetKeyState(VK_F11) < 0) && (KeyPress == true) )
VintProg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка чисел на простоту. Не работает условие. krab777 Общие вопросы Delphi 2 06.06.2011 09:33
[запрос к Бд] не работает условие nuevegramodelamor PHP 2 26.04.2011 14:17
существования перменной не работает условие Pein95 PHP 1 18.04.2011 08:30
существования перменной не работает условие Pein95 PHP 4 17.04.2011 11:23
первый курс. условие неправильно работает Котик Общие вопросы C/C++ 15 28.11.2009 00:56