Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/35: Рейтинг темы: голосов - 35, средняя оценка - 4.83
 Аватар для Rajd
44 / 22 / 2
Регистрация: 20.11.2008
Сообщений: 178

Как сделать переключение между Edit'ами через Tab

10.02.2010, 08:48. Показов 6958. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задачка такова, есть программа на главном окне 2 button, 3 edit, 1 list, 5 static.
Как сделать переключение по нажатию Tab между button, edit и list.

ЗЫ. буду благодарен если все будет в виде примера кода.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.02.2010, 08:48
Ответы с готовыми решениями:

Как сделать переключение вкладок в терминале по Ctrl+Tab?
По умолчанию стояло переключение по Ctrl+PgUn/Ctrl+PgDown, но это мне не подходит, т.к. этими сочетаниями я привык пользоваться в mc....

Переключение между фигурами клавишей Tab и дорисовка
Помогите решить задачу. По исходным данным, которые я уже внес в код программы, нужно сделать: Нормальный вывод фигур, с понятным...

Переключение между фигурами с использованием клавиши TAB
Не могу понять как сделать это действие Помогите ,пожалуйста, суть программы чтобы можно было переключаться между фигурами с помощью...

12
 Аватар для pro_512
9 / 9 / 1
Регистрация: 15.12.2009
Сообщений: 85
18.02.2010, 20:18
Кликни правой кнопкой по любому из компонентов и вибери "Tab Order" там вибери порядок по которому компоненты должны становится активны. Так-же у каждого компонента есть свойство "TabOrder" которое отвечает за порядок переключения.
P.S. Свойство "TabStop" должно быть true иначе если оно в false то етот компонент не будет становится активным при переключении Tab-ом.

Добавлено через 1 минуту
Или я чего-то не понял
0
 Аватар для Rajd
44 / 22 / 2
Регистрация: 20.11.2008
Сообщений: 178
19.02.2010, 03:52  [ТС]
Цитата Сообщение от pro_512 Посмотреть сообщение
Кликни правой кнопкой по любому из компонентов
Как, форма при программировании с помощью WinAPI не видна(ну то есть её совсем нет).

В стилях ставил флаг WS_TABSTOP не работает. Почитал справку этот стиль вроде работает только
с элементами диалоговых окон

Не по теме:

(не серьезно)

. Пробовал использовать WS_GROUP аналогично. Еще где-то прочел что нельзя поймать нажатие Tab'a стандартным сообщением KEYDOWN или KEYUP.

Ну помогите нигде не могу найти решение этого.
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
19.02.2010, 06:24
Цитата Сообщение от Rajd Посмотреть сообщение
В стилях ставил флаг WS_TABSTOP не работает. Почитал справку этот стиль вроде работает только
с элементами диалоговых окон
Немного не так.
Это работает при наличии функции диалогового окна.
А уж как создано само диалоговое окно, автоматом по шаблону, ручками по тому-же шаблону, или вообще целиком функциями WinAPI(хотя это вообще гемморой), совсем не важно.
Просто реакция на Tabstop прописана именно в классе диалогового окна.

Немного проясню ситуацию с самостоятельным отловом tabstop: он ловится... но только в самой функции диалогового окна, а не в элементах, на нем размещенных.
Т.е. можно ловить нажатие tab в главном окне программы.
0
 Аватар для Rajd
44 / 22 / 2
Регистрация: 20.11.2008
Сообщений: 178
20.02.2010, 12:05  [ТС]
Цитата Сообщение от Patch Посмотреть сообщение
Т.е. можно ловить нажатие tab в главном окне программы.
Пробовал ловить tab фокус попадает на листбокс и все дальше не идет.
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
20.02.2010, 12:12
Цитата Сообщение от Rajd Посмотреть сообщение
Пробовал ловить tab фокус попадает на листбокс и все дальше не идет.
Поясни.
Ловил через KEYDOWN?
А устанавливал фокус через SetFocus()?
1
 Аватар для pro_512
9 / 9 / 1
Регистрация: 15.12.2009
Сообщений: 85
20.02.2010, 18:09
Тогда юзай второй пост(мой). Только задавай свойства TabOrder и TabStop программно! То-есть Edit1.TabStop:=true;(можно не задавать по стандарту оно уже true)
Edit1.TabOrder:=1;(integer)
0
 Аватар для Rajd
44 / 22 / 2
Регистрация: 20.11.2008
Сообщений: 178
22.02.2010, 03:32  [ТС]
Цитата Сообщение от Patch Посмотреть сообщение
Поясни.
Ловил через KEYDOWN?
А устанавливал фокус через SetFocus()?
Именно так. А что, есть какая-то особенность? А как по другому можно?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
22.02.2010, 05:52
Цитата Сообщение от Rajd Посмотреть сообщение
Именно так. А что, есть какая-то особенность? А как по другому можно?
У Винды штук 6 разных сообщений о нажатии клавиши.
Разница есть.
Что-то я не понял... Как SetFocus() на одно окно может отдавать фокус другому??
Ты чего-то не то делаешь, по моему...
Текст программы давай посмотрим.
0
 Аватар для Rajd
44 / 22 / 2
Регистрация: 20.11.2008
Сообщений: 178
24.02.2010, 05:07  [ТС]
Цитата Сообщение от Patch Посмотреть сообщение
У Винды штук 6 разных сообщений о нажатии клавиши.
Разница есть.
Что-то я не понял... Как SetFocus() на одно окно может отдавать фокус другому??
Ты чего-то не то делаешь, по моему...
Текст программы давай посмотрим.
Текст программы дать не могу, я его уже переправил и удалил это место, и внес кучу добавок.

(коротко говоря программа это моя попытка создать движок для психологических тестов, но они блин такие разные. Вопросы и ответы не проблема, проблема это обработка результата.)
Однако научиться делать переключение табом хочется, но не получается.Пока.

Передать фокус легче легкого, ВЕДЬ ЛЮБОЙ ЭЛЕМЕНТ ЭТО ОКНО. Так что это не проблема.
Понял свою ошибку:
  1. Я передаю фокус , а соответственно и все телодвижения клавы.
  2. Сообщения от клавы не передаются родительскому окну.
  3. пропадает возможность управлять клавой кодом родительского окна.
Значит решение нужно искать в передаче нажатия таба от дочернего родительскому.
А вообще как грамотно реализовать переключение между элементами на чистом WINAPI. Можно какой-нибудь пример?
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
24.02.2010, 08:13
Цитата Сообщение от Rajd Посмотреть сообщение
Значит решение нужно искать в передаче нажатия таба от дочернего родительскому.
А вообще как грамотно реализовать переключение между элементами на чистом WINAPI. Можно какой-нибудь пример?
В стандартном диалоговом окне существует сообщение WM_NOTIFY, которое и передает все, что нужно родительскому окну.
http://vsokovikov.narod.ru/New... notify.htm
1
 Аватар для Rajd
44 / 22 / 2
Регистрация: 20.11.2008
Сообщений: 178
24.02.2010, 08:33  [ТС]
Собственно вот весь код моего творения, если будет возможность посмотреть и дать совет по лучшей реализации... буду благодарен.
Вложения
Тип файла: zip R_test.zip (7.4 Кб, 67 просмотров)
0
 Аватар для Rajd
44 / 22 / 2
Регистрация: 20.11.2008
Сообщений: 178
24.02.2010, 08:38  [ТС]
Patch, thanks, Бум думать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.02.2010, 08:38
Помогаю со студенческими работами здесь

Не работает Alt+Tab и переключение между окнами
Здравствуйте! Возникла очень неприятная проблема: невозможно переключиться между окнами. Если открыть несколько окон сразу (проводник и...

Переключение между Input Field благодаря Tab
Доброго времени суток, форумчане! Возможно ли сделать переключение между 4-мя Input Field с помощью Tab? Например, если активно для...

Tab Control на WPF, переключение между вкладками по нажатию кнопки
Здравствуйте форумчане, есть вопрос связанный с Tab Control на WPF. Задача стоит следующая есть Tab Control с 5 вкладками. На каждой...

Как сделать переключение между модулями
Здравствуйте! Подскажите, как сделать переключение между модулями. Например, есть выпадающий список 1 2 3 При выборе 1...

Как сделать переключение между новостями
Как сделать переключение между новостями, допустим есть полная новость у нее id=15, нажимаем кнопку next news и читаем 16, а если хотим...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru