マウスの動作に合わせてカスタムドローするには?

[戻る]
Qoo 2005/07/13(水) 18:59:22
開発環境 → VC++6.0 WindowsSDK にて win32API を作成中。
こんにちは、いつもお世話になっています^^Qooと申します。

ドラッグ中のマウスの動きにあわせてリストビューの行の色を変えるということをしよう
と思ってカスタムドローを取り入れました。しかし、マウスの座標が変化してもカスタム
ドローを動かすメッセージ「NM_CUSTOMDRAW」が呼び出されません。
どうやら「NM_CUSTOMDRAW」は描画に変化がある度に呼び出されるようなのですが、マウ
スのドラッグでは描画に変化がないため呼び出されませんでした。
なんとかマウスの座標からカスタムドローを動かす方法はないでしょうか?

普通なら色を変えるためには「選択」してやればいいのですが、リストビューのアイテム
の順番を入れ替えることに使うので「色を変える=選択状態にする」と言うわけにはいか
ないのです^^;

dairygoods 2005/07/13(水) 19:08:29
InvalidateRect で指定範囲の再描画を促すことができます。

もし、促しただけでは再描画してくれない場合は、
RedrawWindow で強制することもできます。

Qoo 2005/07/13(水) 19:54:17
[[解決]]
RedrawWindowで指定した領域がカスタムドローで描画する領域と重なっている場合のみ
「NM_CUSTOMDRAW」が呼び出されていることが分かりました。
あとはRedrawWindowで指定する領域をマウスの座標ごとに変わるようにするのとカスタム
ドローの操作を一工夫すれば思っていたことが出来そうです!
ありがとうございました。

古いスレッドには追加発言できません。