Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
2 / 2 / 2
Регистрация: 18.08.2011
Сообщений: 51

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

25.01.2012, 17:57. Показов 5288. Ответов 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
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru