![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Диалоговые окна на чистом API
onyx © (2005-01-18 21:30:00)Почему когда создаешь диалог с помощью ф-ции CreateDialog фокус ввода не переходит от контрола к контролу по клавише Tab. Хотя в случае с ф-цией DialogBox все нормально. Вопрос:как реализовать смену фокуса по клавише Tab в диалоге созданном с помощью ф-ции CreateDialog?
VMcL (2005-01-19 08:19:00) [1]http://rsdn.ru/
onyx (2005-01-18 22:33:00) [2]Вопрос уже решился.
Неправильный вариант:
hwnd= CreateDialog(hInstance, MAKEINTRESOURCE(IDD_MAINDLG), NULL, (DLGPROC)DlgMainProc);
while ( GetMessage(&msg, NULL, 0, 0) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Правильный вариант:
hwnd= CreateDialog(hInstance, MAKEINTRESOURCE(IDD_MAINDLG), NULL, (DLGPROC)DlgMainProc);
while ( GetMessage(&msg, NULL, 0, 0) )
{
if (!IsDialogMessage(hwnd, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
Т.к. у меня диалогом явл. основное окно программы, то я думал что IsDialogMessageв этом случае не нужна - оказывается нужна.
И еще если кто знает форумы по C, C++ скиньте ссылку.