私はWin32コントロールに取り組んでいます。このコントロールには何百もの「アイテム」が存在する可能性があります。これらはウィンドウではなく、内部オブジェクト (例: 長方形) です。マウスの位置に応じて、マウスカーソルを変更したい。WM_SETCURSOR を使用できます。
同時に、マウスの動きに基づいて、現在マウスの下にあるオブジェクトの詳細を示すステータス バーを表示したいと考えています。そのために、WM_MOUSEMOVE を使用できます。
何百ものアイテムが存在する可能性があり、マウスの下にあるアイテムを見つけるためにそれらすべてを移動する可能性があるため、特に 2 回 (1 つはカーソルの設定用、もう 1 つはマウスの移動用) は効率的ではありません。
簡単に言うと、WM_SETCURSOR と WM_MOUSEMOVE が常にペアになっていることをご存知ですか? その場合、WM_SETCURSOR 中に必要なものを計算できます。もう1つのオプションは、WM_MOUSEMOVE中にマウスカーソルを設定することですが、私の知る限り、それは良い解決策ではありません(ちらつきます)。
ありがとう