· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› controls & Tab

Посл.отвђт Сообщенiе


Дата: Авг 18, 2004 20:53:54

Как в диалоговом окне "включить" перемещение между элементами диалога по клавише Tab. Это прописывается в свойствах элемента или в свойствах диалога? Или надо использовать какую API функцию?


Дата: Авг 18, 2004 21:08:15

Добавить элементам окна стиль WS_TABSTOP


Дата: Авг 19, 2004 09:35:44

-> Asterix
Я добавлял. Но когда программу запускаешь, все равно курсор в первом edit control и по клавише Tab никуда не перемещается. Вот кусок файла ресурсов:

EDITTEXT IDC_EDIT4,45,90,60,12,ES_LOWERCASE | ES_READONLY | WS_TABSTOP

EDITTEXT IDC_EDIT5,115,90,45,12,ES_LOWERCASE | ES_READONLY | WS_TABSTOP

EDITTEXT IDC_EDIT6,115,45,45,12,ES_LOWERCASE | WS_TABSTOP

EDITTEXT IDC_EDIT7,5,212,292,15,ES_READONLY |WS_TABSTOP

Диалоговое окно создаю так(для простоты вызов на Си):
CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1),
NULL, (DLGPROC)DialogProc);

Вот, на всякий случай, параметры самого окна:

IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 401, 237
STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP |
WS_VISIBLE | WS_CAPTION | WS_SYSMENU

Где ошибка?


Дата: Авг 19, 2004 10:52:22

techgl
Что возвращаешь из WM_INITDIALOG?


Дата: Авг 19, 2004 13:15:51

q_q
Все как описано в SDK: возвращаю TRUE. Кстати, там никакие функции вызывать не надо? Я читал, что обычно при обработке этого сообщения центрируют окно(у меня в параметрах окна уже стоит опция "центрирование") и, если нужно, инициализируют элементы управления( в моем случае это не нужно).


Дата: Авг 19, 2004 13:31:51

.Отбой.

Ошибка была в неправильной обработке сообщений. Я обрабатывал так: GetMessage->TranslateMessage->DispatchMessage. А правильно - через IsDialogMessage.

Только вот что осталось "за кадром": почему при "неправильной" обработке сообщений, они все равно поступают в процедуру диалогового окна(WM_COMMAND, WM_CLOSE, etc)?


Дата: Авг 20, 2004 11:28:04

может из-за того, что если в eax - 0, то это сообщение продолжает дальше рассылаться?

у меня в программе баг (все никак не исправлю ;) если кнопка с фокусом становится disabled - с нее хрен табом уйдешь.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.051