Настройка порядка вкладок элемента в диалоге - PullRequest
1 голос
/ 28 сентября 2010

У меня проблема с настройкой порядка вкладок в диалоговом окне. Чтобы установить порядок вкладок, я использовал функцию SetWindowPos ().

Первоначально он будет сфокусирован на одном из элементов диалога, но если я нажму вкладку, он не изменит фокус на другие элементы диалогового окна.

Пожалуйста, помогите ему решить проблему. ниже код ...

HWND hBtn1 = GetDlgItem(hWnd, IDC_BTN_OPEN);

HWND hBtn2 = GetDlgItem(hWnd, IDC_BTN_CLOSE);
HWND hBtn3 = GetDlgItem(hWnd, IDC_BTN_SAVE);

bool result = ::SetWindowPos(hBtn1, hBtn2, 0, 0, 0, 0,SWP_NOSIZE|SWP_NOMOVE);
result = ::SetWindowPos(hBtn2, hBtn3, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE);

1 Ответ

3 голосов
/ 28 сентября 2010

Вы действительно должны установить порядок табуляции по коду?Просто нажмите Ctrl + D в конструкторе диалогов!

Обновление: использование SetWindowPos вам не поможет.Параметр, который, по вашему мнению, будет определять taborder, просто устанавливает z-порядок, то есть порядок рисования элементов управления, если они перекрываются.Я не уверен, но я думаю, что порядок табуляции определяется порядком создания элементов управления.

Следующее обновление: возможный обходной путь - наблюдать события клавиатуры для клавиши Tab, затемполучить активный элемент управления и установить фокус на элемент управления, который должен быть следующим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...