IOleInPlaceSiteWindowless::SetFocus 方法 (ocidl.h)
设置 UI 活动、无窗口对象的键盘焦点。
语法
HRESULT SetFocus(
[in] BOOL fFocus
);
parameters
[in] fFocus
如果 为 TRUE,请将键盘焦点设置为调用对象。 如果 为 FALSE,则从调用对象中删除键盘焦点,前提是该对象具有焦点。
返回值
如果成功将键盘焦点分配给对象,此方法将返回S_OK。 如果调用此方法来释放焦点,则它永远不会失败。 其他可能的返回值包括以下内容。
返回代码 | 说明 |
---|---|
|
键盘焦点被拒绝到 对象。 |
注解
每当开窗对象调用 SetFocus 函数时,无窗口对象都会调用此方法。 通过此调用,无窗口对象获取键盘焦点,并且可以响应窗口消息。 通常,此调用是在 UI 激活过程中进行,在通知方法中进行, IOleInPlaceActiveObject::OnDocWindowActivate with TRUE 和 IOleInPlaceActiveObject::OnFrameWindowActivate with TRUE。
为了响应此调用,容器将 Windows 焦点设置为用于获取键盘消息的窗口 (通常是容器窗口) ,并将任何后续键盘消息重定向到请求焦点的无窗口对象。
无窗口对象还调用 IOleInPlaceSiteWindowless::SetFocus 方法( fFocus 参数设置为 FALSE )以释放键盘焦点,而无需将其分配给任何其他对象。 在这种情况下,容器必须使用 NULL 参数调用 SetFocus 函数,以便没有窗口具有焦点。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | ocidl.h |