IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Кнопки WinAPI, Реакция на горячие клавиши и таб.
TarasBer
сообщение 28.05.2010 10:19
Сообщение #1


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Созднаю кнопку со стилем ws_Child or ws_Visible or bs_PushButton or ws_TabStop и заголовком &A
Буква подчёркивается, но реакции на альт+А нету. Если создать две кнопки, то переключатель по таб между ними не работает. Горячие клавиши реализуются системой, или надо самому их отдельно регистрировать?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 31.05.2010 13:32
Сообщение #2


Гость






Если создавать радио-кнопки так:
  (*
WS_GROUP - значит, началась новая группа радио-кнопок. Все последующие
AUTORADIOBUTTON-ы будут добавляться именно в эту группу. Нужна еще одна -
при создании первой кнопки, которая будет в новой группе, надо опять указать
WS_GROUP
*)
hRBtn_1 := CreateWindowEx(0, 'BUTTON', 'Опция &0',
WS_GROUP or BS_AUTORADIOBUTTON or WS_VISIBLE or WS_CHILD,
15, 132, 95, 25, handleWnd, RBTN_0, hInstance, nil);
hRBtn_2 := CreateWindowEx(0, 'BUTTON', 'Опция &1',
BS_AUTORADIOBUTTON or WS_VISIBLE or WS_CHILD,
15, 154, 155, 25, handleWnd, RBTN_1, hInstance, nil);
hRBtn_3 := CreateWindowEx(0, 'BUTTON', 'Опция &2',
BS_AUTORADIOBUTTON or WS_VISIBLE or WS_CHILD,
15, 176, 155, 25, handleWnd, RBTN_2, hInstance, nil);
CheckRadioButton(handleWnd, RBTN_0, RBTN_2, RBTN_0); // включаем любую кнопку в группе


, а WM_COMMAND обрабатывать так:
  case AMessage of
WM_COMMAND:
begin
case LoWord(WParam) of
RBTN_0 .. RBTN_2: // Смотрим только одну группу. Если есть еще одна - отдельно
begin
// В группе включить нужную. Естественно, остальные выключатся
CheckRadioButton(Window, RBTN_0, RBTN_2, LoWord(WParam));
end;
end

, то не надо никакой эмуляции нажатия на кнопку мыши. Радио-кнопки они на то и радио, что в одной группе может быть одновременно выбрана только одна такая кнопка...
 К началу страницы 
+ Ответить 

Сообщений в этой теме
TarasBer   Кнопки WinAPI   28.05.2010 10:19
volvo   WM_TABSTOP работает в диалоговых окнах, то есть, е...   28.05.2010 10:44
TarasBer   Так что мне делать для того, чтобы кнопки срабатыв...   28.05.2010 11:07
volvo   Можно - RegisterHotKey (это добавит данную комбина...   28.05.2010 11:36
TarasBer   Но в глубине души эти акселлераторы всё равно явля...   28.05.2010 11:48
volvo   Ничего не регистрируется/разрегистрируется. Для о...   28.05.2010 12:51
TarasBer   > if TranslateAccelerator(handleWnd, hAccel, Ms...   31.05.2010 10:34
volvo   Да. Техника описана у MS: How To Manage Per-Window...   31.05.2010 11:23
TarasBer   На пункты меню действует, на bs_PushButton - тоже,...   31.05.2010 11:46
volvo   В функции окна прописано, что при получении соотве...   31.05.2010 12:25
TarasBer   > В функции окна прописано, что при получении с...   31.05.2010 13:03
TarasBer   А, всё, сообщение bm_Click можно послать. Оно врод...   31.05.2010 13:25
volvo   Если создавать радио-кнопки так: (* WS_GROUP...   31.05.2010 13:32
TarasBer   > Если создавать радио-кнопки так: Ну я так и ...   31.05.2010 13:39
volvo   Проще - не всегда правильнее... Дело твое, хочешь ...   31.05.2010 13:51


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 12.07.2025 10:37
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"