Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать, какая кнопка нажималась последней?

321
26 августа 2002 года
Doomych
124 / / 20.01.2000
Как узнать, какая кнопка нажималась последней, не используя функции типа OnButtonDown()?
250
27 августа 2002 года
Joker
1.4K / / 20.02.2000
Цитата:

On 2002-08-26 1813, Doomych wrote
Как узнать, какая кнопка нажималась последней, не используя функции типа OnButtonDown()?


Ни как в момент нажатия можешь это фиксировать а потом уже все..

// http//www.sp1r1tual.com

409
27 августа 2002 года
Ramzes
163 / / 20.09.2000
Посмотри на каком окне фокус ввода.
Правда если у тебя есть еще контролы,
то это может не работать.
577
27 августа 2002 года
Mozhay
81 / / 20.09.2000
Цитата:

On 2002-08-27 0114, Ramzes wrote
Посмотри на каком окне фокус ввода.


Увы
Фокус можно двигать не нажимая на кнопки (клавишей TAB).

Разумным выходом кажется следующий
Сделать для всех кнопок один обработчик сообщения BN_CLICKED
В message map прописывается
ON_CONTROL_RANGE(BN_CLICKED, IDC_BUTTON1, IDC_BUTTON10, OnButtonClicked)
и пишется обработчик
void CMyDialogOnButtonClicked( UINT nID )
{
last_button_id = nID;
}
Все это делается руками, classwizard не поможет.

Еще можно переопределить CWndPreTranslateMessage() для диалогового окна, где лежат все кнопки, и ловить WM_LBUTTONDOWN, WM_KEYDOWN и, возможно, кое-что еще. Но это неоправданно сложно для данной задачи.

321
27 августа 2002 года
Doomych
124 / / 20.01.2000
Дело в том, что мне нужно узнать про нажатие кнопки (Delete) в функции-обработчике другого сообщения, не связанного с нажатием кнопок.
577
27 августа 2002 года
Mozhay
81 / / 20.09.2000
Цитата:

On 2002-08-27 1646, Doomych wrote
Дело в том, что мне нужно узнать про нажатие кнопки (Delete) в функции-обработчике другого сообщения, не связанного с нажатием кнопок.


И в чем проблема? Я для этого и ввел last_button_id (заметь, что она - не локальная переменная). Сделай ее членом класса своего диалога и пользуйся. В обработчике BN_CLICKED идентификатор нажатой кнопки записывается в last_button_id. В другом обработчике читаешь его и пользуешься.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог