Класс CHtmlView и фокус - PullRequest
       27

Класс CHtmlView и фокус

0 голосов
/ 11 августа 2010

У меня диалоговое окно, написанное на MFC. Диалог имеет 3 дочерних элемента управления. 2 кнопки (кнопка 1 и кнопка 2) и элемент управления HTML (класс, полученный из CHtmlView) Элемент управления HTML перемещен на страницу HTML с двумя флажками (флажок 1 и флажок 2).

Контроль Z-Order для фокуса должен быть таким: Кнопка 1 Кнопка 2 HTML Control затем снова Кнопка 1

Когда фокус переходит к элементу управления HTML. Я хочу, чтобы он установил флажок 1, а затем после нажатия вкладки будет установлен флажок 2. Но когда я нажимаю клавишу табуляции, когда фокус на флажке 2, я хочу, чтобы он установил кнопку 1.

т.е. Я хочу цикл фокусировки, например: Кнопка 1 -> Кнопка 2 -> Флажок 1 в элементе управления HTML -> Флажок 2 в элементе управления HTML -> затем снова Кнопка 1

Проблема: Когда фокус установлен на HTML Control, он не устанавливается на флажок 1 и после нажатия вкладки, когда фокус на флажок 2, фокус не вернитесь к кнопке 1.

Дайте мне знать, если вопрос недостаточно описательный, я упросту его. Цените свое время.

1 Ответ

0 голосов
/ 12 августа 2010

Я не могу проверить это, но вы можете попробовать добавить стиль WS_EX_CONTROLPARENT к элементу управления HTML.

int OnInitDialog(...)
{
   HWND html = GetDlgItem(dialog, ID_HTML);
   DWORD ex_style = GetWindowLong(html, GWL_EXSTYLE);
   SetWindowLong(html, GWL_EXSTYLE, ex_tyle | WS_EX_CONTROLPARENT);
   return 0;
}

Я надеюсь, что это работает.

...