1

Delphi 7でWindows用の画面記録アプリを作成していますが、アプリ内でマウスポインターがいつ変更されるか(通常のポインターからサイズ変更ポインターなど)を知りたいと思っています。

現在私が行っているのは、マウスが移動するたびに(そしてタイマー上で)メモリ内のビットマップにマウスポインタをペイントし、最後にペイントしたビットマップとピクセルごとに比較することです。

比較は非常に頻繁に行われるため(マウスを動かすたびに)、かなり高速ですが(約2〜5ミリ秒)、合計されます。より速く、より複雑でない方法が必要だと思います!

4

1 に答える 1

2

カーソルへのハンドルがありますよね?以前と同じハンドル値であれば、見た目も同じだと思います。カーソルの外観が異なる場合は、ハンドル値が異なります。

これは、標準のシステムカーソルにも当てはまります。記録しているアプリケーションが実行中に新しいカーソルを作成している場合 OSで実際に新しいカーソルオブジェクトを作成しなくても(したがって同じハンドル値を維持せずに)、現在のカーソルの外観を更新できる可能性がありますが、特にSetCursorカーソルが変更されていないときにすぐに終了するため、そうは思われません。また、API関数は、回避しようとしているグラフィカルな比較も行わないことを期待しています。HCursor値を比較するだけです。

于 2008-12-11T06:28:02.523 に答える