ITfThreadMgr::AssociateFocus 方法 (msctf.h)

将窗口的焦点与文档管理器对象相关联。

语法

HRESULT AssociateFocus(
  [in]  HWND           hwnd,
  [in]  ITfDocumentMgr *pdimNew,
  [out] ITfDocumentMgr **ppdimPrev
);

parameters

[in] hwnd

要与焦点关联的窗口的句柄。

[in] pdimNew

指向要与之关联的文档管理器的指针。 TSF 管理器不会递增对象引用计数。 此值可以为 NULL

[out] ppdimPrev

接收以前与窗口关联的文档管理器。 如果没有以前的关联,则接收 NULL 。 此参数不能为 NULL

返回值

此方法可以返回其中一个值。

说明
S_OK
方法成功。
E_INVALIDARG
一个或多个参数无效。

注解

为方便应用程序开发人员提供此方法。 将窗口的焦点与文档管理器关联会导致 TSF 管理器在关联窗口收到焦点时自动调用 ITfThreadMgr::SetFocus 与关联的文档管理器。

此方法只能将单个窗口与单个文档管理器相关联。 如果实现将多个文档管理器与单个窗口相关联,或相反,则实现必须调用 ITfThreadMgr::SetFocus 以将焦点设置为适当的文档管理器。

若要还原以前的焦点关联,请使用相同的窗口句柄调用此方法,并在 pdimNew 的原始调用 ppdimPrev 中返回的值。 下面是一个示例。


//associate the focus for m_hwnd with m_pDocMgr 
pThreadMgr->AssociateFocus(m_hwnd, m_pDocMgr, &m_pPrevDocMgr);



//Restore the original focus association. 
ITfDocumentMgr *pTempDocMgr = NULL;

pThreadMgr->AssociateFocus(m_hwnd, m_pPrevDocMgr, &pTempDocMgr);

if(pTempDocMgr)
{
    pTempDocMgr->Release();
}
    
if(m_pPrevDocMgr)
{
    m_pPrevDocMgr->Release();
}

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 msctf.h
DLL Msctf.dll
可再发行组件 Windows 2000 专业版上的 TSF 1.0

另请参阅

ITfDocumentMgr

ITfThreadMgr

ITfThreadMgr::SetFocus