Используя MSHTML, как вы устанавливаете фокус на поле ввода?

#c #visual-c #mshtml

#c #visual-c #mshtml

Вопрос:

Используя MSHTML, я хотел бы установить фокус пользователя на текстовом элементе, то, что мне давали и пробовали до сих пор, не работает.

 CComPtr<IHTMLInputTextElement> field;
field->put_value( .. );  // I have the right element as I can set the text...

VARIANT vStatus;
vStatus.vt = VT_BOOL;
vStatus.boolVal = VARIANT_TRUE;
field->put_status(vStatus);

CComQIPtr<IHTMLInputElement> inputElement(field);
if( inputElement )
  inputElement->put_status(VARIANT_TRUE);
  

и под «не работает» я подразумеваю, что он запускается и не сообщает об ошибках, но фокус на веб-странице не меняется.

Ответ №1:

 CComQIPtr<IHTMLElement2 > element2(field);
if(element2!=NULL) element2->focus();
  

Комментарии:

1. Спасибо, иногда найти правильный интерфейс для нужного действия — это половина проблемы.