Microsoft DirectX 8.0 (Visual Basic)

ScrawlB サンプル

説明

ScrawlB サンプル プログラムでは、Microsoft® DirectInput® を使って簡単な描画プログラムを作成する方法を示す。ここでは、排他モードでのマウスの使い方、マウス イベントのイベント通知の使い方、バッファリング データの取得方法と解釈方法、コールバック関数を使ってマウスの移動イベントを取得する方法を説明する。

パス

ソース ファイル : (SDK ルート)\Samples\Multimedia\VBSamples\DirectInput\Scrawl

実行可能ファイル :(SDK ルート)\Samples\Multimedia\VBSamples\DirectInput\Bin\VB_Scrawlb.exe

ユーザーズ ガイド

左ボタンを押しながらマウスをドラッグすると、描画できる。右ボタンをクリックすると、ショートカット メニューが表示される。[Release Mouse] を選択する (または Alt キーを押して離す) と、システム カーソルが解放されるので、ウィンドウを移動したり、ウィンドウのサイズを変更したり、別のアプリケーションをクリックしたりできる。描画を再開するには、クライアント ウィンドウをもう一度クリックする。

プログラミング上の注意

アプリケーションは 表示ウィンドウをサブクラス化して、WM_ENTERMENULOOP メッセージをキャプチャする。ユーザーが Alt キーを押しながら Space キーを押してシステム メニューを開いたかどうかを調べるには、これが最適な方法である。これがわかれば、ScrawlB は SetWindowLong を呼び出してマウスを解放できる。ただし、サブクラス化すると、デバッグ時に問題が生じることがある。Visual Basic 環境でサンプルを実行したとき、このような行をコメント アウトできなかった場合は、予期できない動作が発生する。

frmCanvas モジュールは、入力イベントを処理するために DirectXEvent8 を実装する。また、このフォームでは、Microsoft DirectInput® がマウスに対するアクセス権を持たないときに Microsoft Windows® マウス イベントを取得するために、Microsoft® Visual Basic® の MouseMove イベントを使用する。このイベントがトリガされると、アプリケーションはカーソルがクライアント ウィンドウに戻ったことを認識するので、マウスを再取得することができる。