Share via


ITextServices::OnTxInPlaceActivate メソッド (textserv.h)

このコントロールがインプレース アクティブであることをテキスト サービス オブジェクトに通知します。

構文

HRESULT OnTxInPlaceActivate(
  [in] LPCRECT prcClient
);

パラメーター

[in] prcClient

型: const RECT*

コントロールのクライアント四角形。

戻り値

型: HRESULT

オブジェクトが正常にアクティブ化された場合、戻り値は S_OK

エラーが原因でオブジェクトをアクティブにできなかった場合、戻り値はE_FAIL。 COM エラー コードの詳細については、「COM でのエラー処理」を参照してください。

解説

インプレース アクティブとは、埋め込みオブジェクトが インプレースで実行 されていることを意味します (たとえば、通常のコントロールや埋め込みの場合は、描画するウィンドウがあります)。 一方、UI がアクティブな場合は、オブジェクトに現在 編集フォーカスがあることを意味します。 たとえば、コンテナーのメニューやツール バーなどには、UI アクティブコントロール/埋め込みからの要素も含まれている場合があります。 UI アクティブ コントロールは、任意の時点で 1 つだけ存在しますが、多くのインプレース アクティブ コントロールが存在する可能性があります。

UI のアクティブ化は、フォーカスの取得とは異なります。 コントロールがフォーカスを取得または失っていることをテキスト サービス オブジェクトに通知するために、ホストは メッセージWM_SETFOCUS および WM_KILLFOCUS メッセージを送信します。 また、ウィンドウレス ホストは、これらのメッセージの wParam (フォーカスを失ったウィンドウ) として NULL を渡すことに注意してください。

非アクティブ状態から UI アクティブ状態に直接移行する場合、ホストは最初 に ITextServices::OnTxInPlaceActivate を呼び出し、次に ITextServices::OnTxUIActivate を呼び出す必要があります。

ITextServices::OnTxInPlaceActivate は、アクティブ化されるビューのクライアント四角形をパラメーターとして受け取ります。 この四角形は、格納しているウィンドウのクライアント座標で指定されます。 これは、ホストで TxGetClientRect を呼び出すことによって取得されるのと同じです。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー textserv.h
[DLL] Msftedit.dll

関連項目

概念

ITextServices

OnTxUIActivate

その他のリソース

Rect

リファレンス

TxGetClientRect

WM_KILLFOCUS

WM_SETFOCUS

ウィンドウレスリッチエディットコントロール