Delphi (XE3) で OnMouseMove を処理しようとしていますが、マウスを動かさなくても、次々と OnMouseMove イベントの無限のストリームが発生します。
元。: 新しい VCL フォーム アプリケーションを開始します。次のコードを使用して、OnMouseMove ハンドラーをフォームに追加します。
var s: string;
begin
s := IntToStr(GetTickCount()) + ': MouseMove';
OutputDebugString(PChar(s));
end;
マウスをフォームの上に置き、IDE のメッセージ ログで無限の OnMouseMoves を観察します。
MouseMove メッセージが届くのは、実際にカーソルを動かしたとき (および、その他の例外的な状況のとき) だけだと思います。実際、私は常に OnMouseMove がこのように機能すると考えてきました。
私は何か間違ったことをしていますか?これは、Delphi の観点から (つまり、設計上) 正しいですか? これは WinAPI で正しいですか? それについて何をすべきか?