0

いくつかのアニメーション化されたフォーム コントロール (基本的に、移動するラベル) を含むフルスクリーン アプリケーションを開発しています。

非アクティブな期間の後にカーソルを非表示にしたいのですが、このスレッドで指定された方法を使用してみました:アイドル時間後にマウスカーソルを非表示にする

これはある意味では機能しますが、フォームの更新がなくなるまでフォームタイマーはカウントを開始しません(私のニーズには役に立ちません)。さらに、カーソルが非表示になると、コントロールが移動されると再表示されます (つまり、ラベルの 1 つがアニメーション化されます)。

私が必要としているのは、Windows がディスプレイ自体で起こっていることを無視し、'Cursor.Hide()' および 'Cursor.Show()' 呼び出しに従うことです。通常の Threading Timer を使用してみましたが、これはまったく機能しませんでした。カーソルは非表示にもなりませんでした。

だから私が求めているのは、カーソルを再表示せずにアニメーションを実行できるようにしながら、カーソルを非表示にする方法だと思います。

どんな助けでも大歓迎です。トム

4

3 に答える 3

2

推測では、wndproc でマウスに関連するすべての WM_ メッセージを処理し、何もしないトグルをオンにしてみませんか。オフに切り替えると、WM_ マウス メッセージの通常の処理が行われます。

于 2009-08-07T17:48:27.183 に答える
0

スレッド タイマー メソッドの呼び出しは、それらを作成したスレッドでは実行されないため、呼び出しを機能させるには、UI スレッドで呼び出しを介して呼び出しを行う必要があります。

于 2009-08-07T12:04:37.860 に答える
0

バグがあるようですhttp://social.msdn.microsoft.com/Forums/en-US/smallbasic/thread/2b963082-c5a7-469c-ba35-02b4a546f913/

試してみることができるのは、100% 透明なビットマップを使用して独自のカスタム カーソルを割り当てることです。これは、カーソルがないように見えます。

于 2009-08-07T11:36:09.900 に答える