Поделиться через


Метод IOleInPlaceSiteWindowless::SetFocus (ocidl.h)

Задает фокус клавиатуры для активного в пользовательском интерфейсе, безоконного объекта.

Синтаксис

HRESULT SetFocus(
  [in] BOOL fFocus
);

Параметры

[in] fFocus

Если задано значение TRUE, фокус клавиатуры устанавливается на вызывающий объект. Если задано значение FALSE, фокус клавиатуры удаляется из вызывающего объекта при условии, что объект имеет фокус.

Возвращаемое значение

Этот метод возвращает S_OK, если фокус клавиатуры был успешно передан объекту . Если этот метод вызывается для освобождения фокуса, он никогда не должен завершаться ошибкой. Другие возможные возвращаемые значения включают следующее.

Код возврата Описание
S_FALSE
Объекту отказано в клавиатурном фокусе.

Комментарии

Объект без окна вызывает этот метод всякий раз, когда оконный объект вызывает функцию SetFocus . С помощью этого вызова объект без окна получает фокус клавиатуры и может отвечать на сообщения окна. Обычно этот вызов выполняется в процессе активации пользовательского интерфейса и в методах уведомлений IOleInPlaceActiveObject::OnDocWindowActivate с true и IOleInPlaceActiveObject::OnFrameWindowActivate с TRUE.

В ответ на этот вызов контейнер устанавливает фокус Windows на окно, используемое для получения сообщений клавиатуры (обычно это окно контейнера), и перенаправляет все последующие сообщения клавиатуры в объект без окна, запрашивающий фокус.

Объект без окон также вызывает метод IOleInPlaceSiteWindowless::SetFocus с параметром fFocus, имеющим значение FALSE, чтобы освободить фокус клавиатуры, не назначая его другому объекту. В этом случае контейнер должен вызывать функцию SetFocus с параметром NULL , чтобы ни в окне не было фокуса.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ocidl.h

См. также раздел

IOleInPlaceActiveObject

IOleInPlaceSiteWindowless