2 / 2 / 2
Регистрация: 18.08.2011
Сообщений: 51

Установить фокус ввода

25.01.2012, 17:57. Показов 5349. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создаю диалоговое окно из ресурсов, где описаны в том числе несколько EditBox'ов. Как определенному ЕдитБоксу установить фокус ввода или каретку, чтобы юзер при открытии окна мог сразу набирать текст? Сейчас приходится тыкать мышкой перед вводом. SetFocus(...) не помогает. Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.01.2012, 17:57
Ответы с готовыми решениями:

Фокус ввода
Здравствуйте! У меня такая проблема: есть главное окно, есть второе окно (аналог стандартного Edita, с нужными мне функциями). Хочется...

Win10 vs Win7. Фокус ввода дочерних окон
Доброй ночи всем!) Пишу программу под вин10. На устройствах с вин10 при наведении мыши на дочерние окна (не важно какого WS стиля) все...

Qt/WinApi Как установить фокус окну при определенных условиях?
Здравствуйте! В общем имею следующую проблему: есть приложение, главное окно скрыто, по комбинации клавиш выводится окошко и ему задается...

2
4195 / 1841 / 223
Регистрация: 06.10.2010
Сообщений: 4,127
25.01.2012, 19:55
Если SetFocus делаешь в обработчике WM_INITDIALOG и при этом возвращаешь ненулевое значение - действительно не работает. Решение - возвращать ноль.

Из справки по DialogProc
In response to a WM_INITDIALOG message, the dialog box procedure should return zero if it calls the SetFocus function to set the focus to one of the controls in the dialog box. Otherwise, it should return nonzero, in which case the system sets the focus to the first control in the dialog box that can be given the focus.
0
2 / 2 / 2
Регистрация: 18.08.2011
Сообщений: 51
26.01.2012, 09:20  [ТС]
Лучший ответ Сообщение было отмечено Qwe1 как решение

Решение

У меня DlgOnIntitDialog возвращает TRUE, а DlgProc возвращает:
C++
1
2
3
4
5
6
switch(msg)
    {
        HANDLE_MSG(hWnd, WM_INITDIALOG,DlgOnIntitDialog);
        default:
            return FALSE;
    }
Но я разобрался: в DlgOnIntitDialog я создаю ListView и функцией SetWindowPos меняю его размер. Последний параметр у меня был пустой, установил SWP_NOZORDER и на первом ЕдитБоксе без SetFocus() установился фокус!

Добавлено через 12 часов 7 минут
Проверил, если едитбоксов несколько, то как сказал murderer - надо возвращать 0 и SetFocus сработает...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.01.2012, 09:20
Помогаю со студенческими работами здесь

Как сообщить окну что оно активно но фокус ввода не передавать?
Пишу бота для онлайн игры при помощи WinAPI. Научился нажимать в активное окно при помощи PostMessage(). Полностью похоже на реальное...

Как установить фокус на форму для ввода?
Привет! У меня такая проблемка: на jsp-странице одновременно видны все записи в базе (ну, выбранные по определенному признаку, например,...

Установить фокус ввода на первом отрицательном числе
Здравствуйте! По JS помощь очень нужна, задание элементарно: На странице имеется несколько текстбоксов, в которые вводятся числа. По кнопке...

Установить фокус ввода на поле после открытия страницы
Требуется установить фокус ввода на нужное поле ввода после открытия страницы. т.е. к примеру как после загрузки страницы запустить на...

Как установить фокус ввода на динамически созданный контрол Edit?
Здравствуйте! Создаю через CreateWindowEx контрол EDIT со стилем ES_MULTILINE. Все работает нормально. Можно вводить текст, по...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru