IOleDocumentView::UIActivate メソッド (docobj.h)
メニュー、ツール バー、アクセラレータなど、ドキュメント ビューのユーザー インターフェイス要素をアクティブ化または非アクティブ化します。
構文
HRESULT UIActivate(
[in] BOOL fUIActivate
);
パラメーター
[in] fUIActivate
TRUE の場合、ビューはユーザー インターフェイスをアクティブにします。 FALSE の場合、ビューはユーザー インターフェイスを非アクティブ化します。
戻り値
このメソッドは、成功したS_OKを返します。 その他の可能な戻り値は次のとおりです。
リターン コード | 説明 |
---|---|
|
操作が失敗しました。 |
|
操作に使用できるメモリが不足しています。 |
|
予期しないエラーが発生しました。 |
解説
呼び出し元へのメモ
IOleDocumentView::SetInPlaceSite を呼び出す前にこのメソッドを呼び出すと、ビューをアクティブ化する前にビュー サイトに関連付ける必要があるため、E_UNEXPECTEDが返されます。IOleDocumentView::UIActivate がアクティブ化シーケンスの一部として呼び出されると、ビューのディメンションがツール バー領域を考慮しないため、呼び出しの前に IOleDocumentView::SetRect または IOleDocumentView::SetRectComplex を呼び出す必要があります。
ビューを非アクティブ化するには、コンテナーで IOleDocumentView::Show を FALSE で呼び出し、その後に IOleDocumentView::UIActivate を FALSE で呼び出す必要があります。
実装者へのメモ
このメソッドの実装は、次の擬似コードを具体化する必要があります。if (fActivate)
{
UI activate the view (do menu merging, show frame level tools, process accelerators)
Take focus, and bring the view window forward.
}
else
call IOleInPlaceObject::UIDeactivate on this view
さらに、ビューは拡張 ヘルプ メニューのマージに参加できます。
ドキュメント オブジェクトのすべてのビューでは、インプレース アクティブ化をサポートする必要があります。 E_NOTIMPLは許容される戻り値ではありません。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | docobj.h |
関連項目
IOleDocumentView::SetInPlaceSite