ウェイトカーソル

waitCursor クラスは、マウスポインタを砂時計または処理を表すポインタに変更します。 それは、Originが処理に時間がかかるコードを実行していることを示すための視覚的な合図で、他の入力を受け無いようにします。 waitCursor オブジェクトのインスタンスが作成されると、マウスポインタは処理を表すポインタに変わり、インスタンスが破棄されると、矢印のポインタに戻ります。

次のサンプルは、時間がかかる処理を行う関数です。 最初に、waitCursor インスタンスを宣言し、作成します。 作成されている間、マウスポインタは、処理を表すポインタに変わります。 関数を終了すると、waitCursor のインスタンスは自動的に破棄され、マウスポインタが矢印のポインタに戻ります。

void myTimeConsumingFunction()
{
    waitCursor wc; // 宣言してウェイトカーソルを表示
    for( int i = 0; i < 10000; i++ )
    {
        if( 0 == (i % 100) )
            printf("i == %d\n", i);
    }
}

次のサンプルは、上記の例に似ていますが、時間のかかる処理が完了する前に、関数を終了する機能を追加しました。 早めに終了する機能は、ウエイトカーソルのCheckEsc メソッドを呼び出すことで実行されます。 このメソッドは、ユーザがESCキーを押すとTrueを返し、それ以外の場合はFalseを返します。

void myEscapableTimeConsumingFunction()
{
    waitCursor wc; // 宣言してウェイトカーソルを表示
    for( int i = 0; i < 10000; i++ )
    {
        if( 0 == (i % 100) )
            printf("i == %d\n", i);
        if( wc.CheckEsc() )
            break; //ループを早く抜ける
    }
}