IDCompositionVisual::SetClip(IDCompositionClip*) メソッド (dcomp.h)
このビジュアルの Clip プロパティを、指定したクリップ オブジェクトに設定します。 Clip プロパティは、このビジュアルをルートとするビジュアル サブツリーのレンダリングを四角形の領域に制限します。
構文
HRESULT SetClip(
[in, optional] IDCompositionClip *clip
);
パラメーター
[in, optional] clip
種類: IDCompositionClip*
このビジュアルに関連付けるクリップ オブジェクト。 このパラメーターは、NULL でもかまいません。 IDCompositionRectangleClip のすべての float プロパティには、-2^21 ~ 2^21 の数値制限があります。 API は、この範囲外の数値を受け入れますが、常にこの範囲にクランプされます。
戻り値
種類: HRESULT
関数が成功した場合は、S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。 エラー コードの一覧については、「 DirectComposition エラー コード 」を参照してください。
解説
Clip プロパティを設定すると、このビジュアルと、このビジュアルに根ざしたサブツリー内のすべてのビジュアルがクリップされます。 クリップは、OffsetX、OffsetY、および Transform プロパティによって変換されます。
Clip プロパティでクリップの四角形を指定した場合、新しく指定した Clip オブジェクトによってクリップの四角形が置き換えられます。
クリップが無効なポインターである場合、またはこのビジュアルを作成したのと同じ IDCompositionDevice インターフェイスによって作成されていない場合、このメソッドは失敗します。 インターフェイスをカスタム実装にすることはできません。このメソッドでは、Microsoft DirectComposition によって作成されたインターフェイスのみを使用できます。
clip が NULL の場合、ビジュアルは親に対して相対的にクリップされません。 ただし、ビジュアルは親ビジュアルのクリップ オブジェクト、またはクリップ オブジェクトを持つ最も近い先祖ビジュアルによってクリップされます。 クリップを NULL に設定することは、クリップの四角形の左側と上辺が負の無限大に設定され、右辺と下端が正の無限大に設定されているクリップ オブジェクトを指定するのと似ています。 NULL クリップ オブジェクトを使用すると、パフォーマンスが若干向上します。
clip が空の四角形を持つクリップ オブジェクトを指定すると、ビジュアルは完全にクリップされます。つまり、ビジュアルはビジュアル ツリーに含まれますが、何もレンダリングされません。 コンポジションから特定のビジュアルを除外するには、空のクリップ四角形を設定するのではなく、ビジュアル ツリーからビジュアルを削除します。 ビジュアルを削除すると、パフォーマンスが向上します。
要件
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | dcomp.h |
Library | Dcomp.lib |
[DLL] | Dcomp.dll |