Edit Control не отдаёт фокус.
От: Henry Twilight Россия  
Дата: 16.08.05 10:02
Оценка:
Перемещение оконного фокуса производится по нажатию Tab'а, но Edit Control не обрабатывает табуляцию, т.е. нажатие клавиши Tab если фокус на Едит боксе не приводит ни к чему. Как всё-таки отобрать фокус у Едита?

Вот примеры кода создания контрола и обработка сообщения:

Создание контрола
    DWORD style = WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
        | ES_LEFT | ES_AUTOVSCROLL | ES_MULTILINE | ES_WANTRETURN;

    _hEdit = CreateWindow("edit", NULL, style,
        0, 0, 0, 0,
        hWnd, (HMENU)(INT_PTR)ID, hInst, NULL);


Обработка сообщений
    while (GetMessage(&msg, NULL, 0, 0)) 
    {
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
        {
            if ( !IsDialogMessage(hWind, &msg) )
            {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
            }
        }
    }
Re: Edit Control не отдаёт фокус.
От: kero Россия  
Дата: 16.08.05 11:15
Оценка:
Здравствуйте, Henry Twilight, Вы писали:

HT>Перемещение оконного фокуса производится по нажатию Tab'а, но Edit Control не обрабатывает табуляцию, т.е. нажатие клавиши Tab если фокус на Едит боксе не приводит ни к чему. Как всё-таки отобрать фокус у Едита?


HT>Вот примеры кода создания контрола и обработка сообщения:


HT>Создание контрола

HT>[ccode]
HT> DWORD style = WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
HT> | ES_LEFT | ES_AUTOVSCROLL | ES_MULTILINE | ES_WANTRETURN;


А чего вы ожидали при ES_MULTILINE (да без сабклассинга) ??

Надо бы почитывать ответы на свои же вопросы (см. http://rsdn.ru/Forum/Message.aspx?mid=1321855&all=1
Автор:
Дата: 11.08.05
) ...
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[2]: Edit Control не отдаёт фокус.
От: Henry Twilight Россия  
Дата: 16.08.05 11:31
Оценка:
Здравствуйте, kero, Вы писали:

K>Здравствуйте, Henry Twilight, Вы писали:


HT>>Перемещение оконного фокуса производится по нажатию Tab'а, но Edit Control не обрабатывает табуляцию, т.е. нажатие клавиши Tab если фокус на Едит боксе не приводит ни к чему. Как всё-таки отобрать фокус у Едита?


HT>>Вот примеры кода создания контрола и обработка сообщения:


HT>>Создание контрола

HT>>[ccode]
HT>> DWORD style = WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP
HT>> | ES_LEFT | ES_AUTOVSCROLL | ES_MULTILINE | ES_WANTRETURN;

K>А чего вы ожидали при ES_MULTILINE (да без сабклассинга) ??


Санта Клауса. Сабклассинг там есть, но что конкретно нужно для данной фичи непонятно.

K>Надо бы почитывать ответы на свои же вопросы (см. http://rsdn.ru/Forum/Message.aspx?mid=1321855&all=1
Автор:
Дата: 11.08.05
) ...

Иш ты, аццкий программер Ответы на свои вопросы читаю внимательно. В одном из Ваших ответов был приведен пример приложения, в котором была реализована необходимая мне функциональность. НО ES_MULTILINE в моем приложении НЕОБХОДИМ. Без него и у меня всё работает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.