次の方法で共有


IOleInPlaceSiteWindowless::SetFocus メソッド (ocidl.h)

UI アクティブなウィンドウレス オブジェクトのキーボード フォーカスを設定します。

構文

HRESULT SetFocus(
  [in] BOOL fFocus
);

パラメーター

[in] fFocus

TRUE の場合、キーボード フォーカスを呼び出し元のオブジェクトに設定します。 FALSE の場合、オブジェクトにフォーカスがある場合、呼び出し元のオブジェクトからキーボード フォーカスが削除されます。

戻り値

このメソッドは、キーボード フォーカスがオブジェクトに正常に指定された場合にS_OKを返します。 フォーカスを解放するためにこのメソッドが呼び出された場合、失敗することはありません。 その他の可能な戻り値は次のとおりです。

リターン コード 説明
S_FALSE
オブジェクトに対してキーボード フォーカスが拒否されました。

解説

ウィンドウなしのオブジェクトは、ウィンドウオブジェクトが SetFocus 関数を呼び出すたびに、このメソッドを呼び出します。 この呼び出しを通じて、ウィンドウレス オブジェクトはキーボード フォーカスを取得し、ウィンドウ メッセージに応答できます。 通常、この呼び出しは UI のアクティブ化プロセス中に行われ、通知メソッド IOleInPlaceActiveObject::OnDocWindowActivateTRUEIOleInPlaceActiveObject::OnFrameWindowActivateTRUE の場合に行われます。

この呼び出しに応じて、コンテナーは Windows フォーカスをキーボード メッセージ (通常はコンテナー ウィンドウ) を取得するために使用されるウィンドウに設定し、後続のキーボード メッセージをフォーカスを要求したウィンドウレス オブジェクトにリダイレクトします。

また、ウィンドウレス オブジェクトは、fFocus パラメーターを FALSE に設定して IOleInPlaceSiteWindowless::SetFocus メソッドを呼び出して、キーボード フォーカスを他のオブジェクトに割り当てずに解放します。 この場合、ウィンドウにフォーカスが設定されていないように、コンテナーは NULL パラメーターを使用して SetFocus 関数を呼び出す必要があります。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ocidl.h

関連項目

IOleInPlaceActiveObject

IOleInPlaceSiteWindowless