描画対象ウィンドウの制御 (IVideoWindow)

ウィンドウのオーナーや位置を設定し、描画対象のウィンドウを制御できます。

※このように描画対象のウィンドウを指定しない場合、IMediaControl.Run()メソッドを呼び出したときに新しいウィンドウが表示され、そのウィンドウに対して描画が行われます。

IVideoWindowインターフェイスの作成

IGraphBuilderのインスタンスから、キャストする形式で作成します。

IVideoWindow videoWindow;

videoWindow = ( IVideoWindow )graphBuilder;

ウィンドウ オーナーの設定

ウィンドウのオーナー (親ウィンドウ) を設定することで、アプリケーションのウィンドウ内に描画されるようになります。

videoWindow.put_Owner( this.Handle );

表示スタイルの設定

オーナーを設定するだけではタイトルバーを持ったウィンドウとして表示されるので、さらにウィンドウの表示スタイルを設定します。

videoWindow.put_WindowStyle( WindowStyle.Child | WindowStyle.ClipChildren );
WindowStyle列挙型
列挙子 説明
Popup  
Overlapped  
TabStop  
MaximizeBox  
MinimizeBox  
Group  
ThickFrame  
SysMenu  
HScroll  
VScroll  
DlgFrame  
Border  
Caption  
Maximize  
ClipChildren  
ClipSiblings  
Disabled  
Visible  
Minimize  
Child  

親ウィンドウのサイズ変更への対応

親ウィンドウのサイズ変更イベントで、ウィンドウのサイズを設定し直します。

videoWindow.SetWindowPosition(
    0,
    0,
    this.ClientSize.Width,
    this.ClientSize.Height
    );