C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 6 - Учим реагировать на клавиатуру окно OpenGL / Open GL / Графика

Шаг 6 - Учим реагировать на клавиатуру окно OpenGL

Создание проекта

Только изменение кода. Добавляем описание функций реакции:

#include "afxwin.h"
#include "GL/gl.h"
#include "GL/glu.h"
#include "GL/glaux.h"

void myinit(void);
void CALLBACK display(void);
void CALLBACK ProcUp(void);
void CALLBACK ProcDown(void);
void CALLBACK RrocLeft(void);
void CALLBACK ProcRight(void);

Связываем функции с нажатием клавиш:

int main(int argc, char** argv)
{
	auxInitDisplayMode (AUX_SINGLE | AUX_RGB );
	auxInitPosition (0, 0, 500, 500);
	auxInitWindow ("1-6");
	myinit ();
	auxKeyFunc(AUX_UP, ProcUp);
	auxKeyFunc(AUX_DOWN, ProcDown);
	auxKeyFunc(AUX_LEFT, RrocLeft);
	auxKeyFunc(AUX_RIGHT, ProcRight);
	auxMainLoop(display);
	return(0);
}

И реализация:

void CALLBACK ProcUp (void)
{
	MessageBox(0,"Up","Press",MB_ICONINFORMATION);
}

void CALLBACK ProcDown (void)
{
	MessageBox(0,"Down","Press",MB_ICONINFORMATION);
}

void CALLBACK  RrocLeft(void)
{
	MessageBox(0,"Left","Press",MB_ICONINFORMATION);
}

void CALLBACK  ProcRight(void)
{
	MessageBox(0,"Rigth","Press",MB_ICONINFORMATION);
}

Описание

Для реакции на клавиши необходимо создать описание и реализацию функций типа CALLBACK. Далее эти функции привязываются к нажатиям клавиш с помощью auxKeyFunc. Важно связать функции и клавиши до вызова auxMainLoop. В auxKeyFunc передается код клавиши и адрес функции.

Делайте всё необходимое и запускайте. Нажимаете на кнопки - появляются диалоговые окна. Класс !!!. Только окно должно быть в фокусе (активным) иначе сообщения получит кто-то другой.


Шпаргалка

Функции должны быть CALLBACK.

Свяжите функцию с клавишей:

auxKeyFunc (AUX_UP, ProcUp);
......
auxMainLoop (display);

| |
Автор Каев Артем.
[AD]