|
|||||
|
|||||
|
||||||
WTLはウィンドウ上のカーソルを簡単に変更するためにCWaitCursorクラスを用意しています。
このクラスはatlctrlx.hヘッダに定義されています。
次に示すのはCWaitCursorクラスの最も簡単な使用方法です。
CWaitCursorクラスのコンストラクタには3つの引数を指定できます。
第1引数はインスタンスを作成した直後にカーソルを変更するかどうかを示すbool値で、
trueを指定すると内部でSet()というメンバ関数が呼び出されてすぐにカーソルが変わります。
第2引数はカーソルリソース名、第3引数はシステムカーソルを使うかどうかを示すbool値です。
これらの引数はすべて省略でき、省略した場合はデフォルト引数として順にtrue、IDC_WAIT、trueが指定されます。
上の例ではコンストラクタ引数を省略しているため、カーソルが砂時計カーソルになります。
CWaitCursorクラスのデストラクタではRestore()というメンバ関数が呼び出され、
カーソルが元に戻ります。Set()やRestore()は明示的に呼び出すこともできます。
次に示すのは、前述の例と同じ処理をメンバ関数を明示的に呼び出して実行する例です。
この例では CWaitCursorクラスのコンストラクタの第1引数にfalseを指定しているため、
インスタンスを作成した時点ではまだカーソルは変更されません。
Set()を呼び出した時に初めてカーソルが変更されます。次に示すのは、独自のカーソルを表示する例です。 なお、あらかじめプロジェクトに IDC_CURSOR1というIDのカーソルリソースを追加しておきます。
この例ではシステムカーソルではなく、独自のカーソルリソースを使用するため、 コンストラクタの第3引数にはfalseを指定します。 なお、WTLは、独自のカーソルを表示するために CWaitCursorクラスから派生したCCustomWaitCursorクラスを用意しています。
次に示すのはCCustomWaitCursorクラスを使用する例です。
CCustomWaitCursorクラスのコンストラクタの第1引数にはカーソルリソースのIDを指定します。
第2、3引数にはそれぞれ、インスタンスを作成した直後にカーソルを変更するかどうかを示すbool値と、
カーソルリソースが入ったモジュールのインスタンスハンドルを指定できますが、どちらも省略可能です。
省略した場合はデフォルト引数としてそれぞれtrueとNULLが指定されます。
|