Как в диалоговом окне "включить" перемещение между элементами диалога по клавише Tab. Это прописывается в свойствах элемента или в свойствах диалога? Или надо использовать какую API функцию?
-> 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 Где ошибка?
q_q Все как описано в SDK: возвращаю TRUE. Кстати, там никакие функции вызывать не надо? Я читал, что обычно при обработке этого сообщения центрируют окно(у меня в параметрах окна уже стоит опция "центрирование") и, если нужно, инициализируют элементы управления( в моем случае это не нужно).
.Отбой. Ошибка была в неправильной обработке сообщений. Я обрабатывал так: GetMessage->TranslateMessage->DispatchMessage. А правильно - через IsDialogMessage. Только вот что осталось "за кадром": почему при "неправильной" обработке сообщений, они все равно поступают в процедуру диалогового окна(WM_COMMAND, WM_CLOSE, etc)?
может из-за того, что если в eax - 0, то это сообщение продолжает дальше рассылаться? у меня в программе баг (все никак не исправлю если кнопка с фокусом становится disabled - с нее хрен табом уйдешь.