先日作成した個人的なツールなどで,リストボックスのイベントがうまく取れないことがある.
それで,テスト用の exe を作成して確認してみた.
動作としては,左から CListBox ,オーナードロー,ドラッグをサポートするオーナードロー.
リストされる内容は,exe のあるディレクトリに存在するファイル.
リストを選択すると,LBN_SELCHANGE が入り,上のエディットボックスに選ばれたものが入る.
普通に動作させた場合は特に問題ない.
この exe を 2 つ起動して,交互にリストから選択すると…
一番右のドラッグをサポートするリストボックスの選択で LBN_SELCHANGE が来ない?
また,選択して「ドラッグ」すると,他方はハイライトされる行が変わり WM_LBUTTONUP 後 LBN_SELCHAGE が入る.
一番右は「ドラッグ」動作のため,選択されているものが変わることはない.
WM_LBUTTONUP 後,選ばれているものが変わるのも当然うまくない.
リストボックスの標準的な動作として,ドラッグが絡むとうまくないのかもしれない.
今回作成しているツールでは,ドラッグ機能は必要ないため,オーナードローリストボックスに変更予定.