Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139

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

26.01.2012, 22:07. Показов 2658. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я так понимаю, что в 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 минут
Дайте, пожалуйста, хотя бы зацепку. Какой-нибудь термин, чтобы искать в поисковиках.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.01.2012, 22:07
Ответы с готовыми решениями:

Изменение расположения курсора на экране и симуляцция нажатия кнопок на мышке и клавиатуре
Есть ли в pascalABC.NET функции 1. Изменяют расположении курсора на экране. К примеру после 5 секунд работы программы курсор перемещался...

Как отследить нажатия кнопок на мышке вне формы
Что нужно для этого сделать ? Спасибо за ранее.

For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента
Изучаю контейнеры и алгоритмы stl по Майерсу . С непривычки слегка охренел и запутался в них . В общем есть у меня простой вызов...

2
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
26.01.2012, 22:39
Как вам тут что-то можно подсказать, когда у вас хз какая библиатека для работы с окнами.
В WinAPI - свой способ
MFC - другой
%любая другая либа% - тоже свой, отличный от других.
1
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
26.01.2012, 23:16  [ТС]
О, спасибо вам, вспомнил как в win api происходит дело.
В WINAPI callback функции вызываются для окон и в этих функциях уже через switch рассматриваются сообщения. В эти сообщения так же входят нажатия кнопок мыши и клавиш клавиатуры.

У меня вопрос про графическую библиотеку FLTK.
В ней регистрируются callback функции для кнопок и когда пользователь нажимает кнопки, вызываются call back функции для каждой кнопки. А вот как нажатие клавиш клавиатуры и кнопок мыши я не знаю. Надо покопаться в документации FLTK.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.01.2012, 23:16
Помогаю со студенческими работами здесь

Для чего нужны callback-функции
Для чего нужны callback-функции? И можно привести какой-нибуль пример по их использованию.

Как генерировать новые функции для кнопок QT4
да, да, Qt4 устарел, я это осознаю, но нормально работать это ему не мешает)) Написал небольшой скрипт, необходимо разместить кучу кнопок...

Составить блок-схему и программу для вычисления знач. функции У в зависимости от заданного с клав. знач. аргумента Х - T
Ребята помогите пожалуйста решить задачку по TurboPasсal Составить блок-схему и программу для вычисления знач. функции У в зависимости...

Не работает часть клавиш на Lenovo B570E. Замена клав. не помогает
Help!! Пришёл ноутбук Lenovo B570E с частично нераб. клавиатурой. Присутствовало двойное нажатие и часть клавиш не работала. Заменил...

Функции для клавиш клавиатуры
Здравствуйте! Как на какой-нибудь набор клавиш поставить какое либо действии??? Например: при нажатии на CTRL+C документ находящийся в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru