やり始めて、どう考えてもリストビューのオーナードローが必須だったのでぐぐってやってみた。
コードは簡単だったし手間もたいしたことはなかったんだけど
完全コピーしてるのに動きません・・・
そもそもWM_DRAWITEMが飛んできてない。スタイル指定もしてあるんですけど・・・
んでこれ。
正体不明のスクロールバーがTabコントロールにしがみついて離れない。もちろん見た目だけで機能してない。
最初はリストがはみ出してるからかと思ったけどそんなこともなく、クリエイトしなくても関係ないので除外。
同じように2つっきりのタブも消したけど変化なし。
加えて今確認したら過去のスナップには写ってないから、今回のビルドで出現したってことしかわからない。
ぐぐってもタブとスクロールバーの関係性について触れているものがなく・・・
タブ消してボタンで再現するとかしか思いつかないよ・・・
TabコントロールにWS_HSCROLLを指定するとXP使用のスクロールバーに変更された。
しかしそのスタイルを適用するしないに関わらず、WM_HSCROLLにメッセージが飛んでこない。
非表示はおろか表示したまま使用することすら叶わないらしい。
何が原因なんだか。
hTab = CreateWindowEx(NULL, WC_TABCONTROL, NULL, WS_CHILD | WS_VISIBLE | WS_HSCROLL, 274, 5, 200, 470, hWnd, (HMENU)IDC_TABCLIST, hInstance, NULL); lStyle = GetWindowLong(hTab, GWL_STYLE); lStyle &= ~WS_HSCROLL; lStyle = SetWindowLong(hTab, GWL_STYLE, lStyle); SetWindowPos(hTab, NULL, 0, 0, 0, 0, (SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED));
(long)lStyleにスタイル情報を格納しながら変更処理を行い、その変遷を追うとこうなった。
スタイル外しは成功しているが、表示結果に変更はなし。XPスタイルのバーが表示される。
Create時のスタイル指定を省いても、実際にはXPスタイルなしのバーが表示される。
こっちからの操作を受け付けないんじゃ正直お手上げですわなぁ。