IOleInPlaceSiteWindowless::SetFocus 方法 (ocidl.h)

设置 UI 活动、无窗口对象的键盘焦点。

语法

HRESULT SetFocus(
  [in] BOOL fFocus
);

parameters

[in] fFocus

如果 为 TRUE,请将键盘焦点设置为调用对象。 如果 为 FALSE,则从调用对象中删除键盘焦点,前提是该对象具有焦点。

返回值

如果成功将键盘焦点分配给对象,此方法将返回S_OK。 如果调用此方法来释放焦点,则它永远不会失败。 其他可能的返回值包括以下内容。

返回代码 说明
S_FALSE
键盘焦点被拒绝到 对象。

注解

每当开窗对象调用 SetFocus 函数时,无窗口对象都会调用此方法。 通过此调用,无窗口对象获取键盘焦点,并且可以响应窗口消息。 通常,此调用是在 UI 激活过程中进行,在通知方法中进行, IOleInPlaceActiveObject::OnDocWindowActivate with TRUEIOleInPlaceActiveObject::OnFrameWindowActivate with TRUE

为了响应此调用,容器将 Windows 焦点设置为用于获取键盘消息的窗口 (通常是容器窗口) ,并将任何后续键盘消息重定向到请求焦点的无窗口对象。

无窗口对象还调用 IOleInPlaceSiteWindowless::SetFocus 方法( fFocus 参数设置为 FALSE )以释放键盘焦点,而无需将其分配给任何其他对象。 在这种情况下,容器必须使用 NULL 参数调用 SetFocus 函数,以便没有窗口具有焦点。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 ocidl.h

请参阅

IOleInPlaceActiveObject

IOleInPlaceSiteWindowless