Форум программистов, компьютерный форум CyberForum.ru

callback функции не для кнопок на экране, а для клавиш на клав. и мышке. Как? - C++

Войти
Регистрация
Восстановить пароль
 
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
26.01.2012, 22:07     callback функции не для кнопок на экране, а для клавиш на клав. и мышке. Как? #1
Я так понимаю, что в WIN API все действия делаются асинхронно через callback функции.
Но как инициировать действие для клавиш клавиатуры и кнопок мышки? Или их по другому делают?
Вот из книги страуструпа( я не много по другому написал ):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "GUI.h"
#include "Graph.h"
#include "Lines_window.h"
#include <stdexcept>
#include <iostream>
 
int main()
try {
    Lines_window win( Point( 100, 100 ), 600, 400, "lines" );
    return GraphLib::gui_main();
}
catch( std::exception& ex ) {
    std::cerr << "Exception: " << ex.what() << std::endl;
    return 1;
}
catch(...) {
    std::cerr << "Exception\n";
    return 2;
}
Эта программа рисует ломанную линию. Пользователь вводит точку и нажимает кнопку "next point", а программа рисует линию от предыдущей веденной пользователем точки до текущей.
Все действия - это нажатия кнопок "next point" и "Quit", т.е. есть две callback функции для этих кнопок.
А если надо клавиши клавиатуры и кнопки мышки использовать, то как это делается?
И еще вопрос: когда "программа написана полностью на ООП", то все действия выполняются в методах классов, как я выше привел пример? Например, хочу написать тетрис с ООП, тогда надо делать как в примере выше?

Добавлено через 3 часа 15 минут
Дайте, пожалуйста, хотя бы зацепку. Какой-нибудь термин, чтобы искать в поисковиках.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2012, 22:07     callback функции не для кнопок на экране, а для клавиш на клав. и мышке. Как?
Посмотрите здесь:

C++ Getch для управляющих клавиш
Для чего нужны callback-функции C++
Эмуляция нажатия клавиш для SDL C++
C++ Функция для считывания нажатых клавиш.
C++ callback функции и функциональные объекты в качестве параметров
Методы класса как callback функции C++
Просмотр списка с вызовом callback функции C++
C++ Различия комбинаций клавиш для остановки процесса
For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента C++
C++ Шаблоны и функторы как callback для класса свойства объекта. Код работает - но не должен
Построить на экране монитора графики функции y=k*sinx+c, для 2-3 значений k и с разными цветами C++
Как реализовать срабатывание Callback функции при событии? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1478 / 1054 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
26.01.2012, 22:39     callback функции не для кнопок на экране, а для клавиш на клав. и мышке. Как? #2
Как вам тут что-то можно подсказать, когда у вас хз какая библиатека для работы с окнами.
В WinAPI - свой способ
MFC - другой
%любая другая либа% - тоже свой, отличный от других.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
26.01.2012, 23:16  [ТС]     callback функции не для кнопок на экране, а для клавиш на клав. и мышке. Как? #3
О, спасибо вам, вспомнил как в win api происходит дело.
В WINAPI callback функции вызываются для окон и в этих функциях уже через switch рассматриваются сообщения. В эти сообщения так же входят нажатия кнопок мыши и клавиш клавиатуры.

У меня вопрос про графическую библиотеку FLTK.
В ней регистрируются callback функции для кнопок и когда пользователь нажимает кнопки, вызываются call back функции для каждой кнопки. А вот как нажатие клавиш клавиатуры и кнопок мыши я не знаю. Надо покопаться в документации FLTK.
Yandex
Объявления
26.01.2012, 23:16     callback функции не для кнопок на экране, а для клавиш на клав. и мышке. Как?
Ответ Создать тему
Опции темы

Текущее время: 09:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru