Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Фокус на EDITTEXT в диалоге


Автор: Riddik 8.4.2013, 14:27
Привет. 

Во время появления диалога нужно установить фокус ввода на компоненте EDITTEXT и выделить весь текст в нём.

В обработке сообщения WM_INITDIALOG вызываю SetFocus(GetDlgItem(hwnd, IDEDIT1)); - без толку.

Для выделения всего текста: SendDlgItemMessageW(hwnd, IDEDIT1, EM_SETSEL, (WPARAM)0, (LPARAM)-1);

Тоже нет эффекта. 

В чём может быть проблема?

Компонент в файле-ресурсов определён так:
EDITTEXT        IDEDIT1, 70, 6, 50, 12, ES_RIGHT, WS_EX_RIGHT

Автор: GremlinProg 8.4.2013, 15:25
WM_INITDIALOG - хитрое сообщение. Если в ответ на него вернуть TRUE система сама установит фокус в компонент, чей HWND передается в wParam. По всей видимости, чтобы фокус не переходил на другой компонент, в вашем случае, следует вернуть FALSE.

Автор: Riddik 8.4.2013, 15:37
Большое спасибо, всё нормально)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)