リストボックスで...
- システムでリストボックスのスムーススクロールが有効になっている(SystemParameterInfo()のSPI_GETLISTBOXSMOOTHSCROLLINGがTRUE)
- リストボックスがLBS_OWNERDRAWVARIABLEのとき
この条件を満たしているとき、PageDownキーや、スクロールバーでSB_PAGEDOWNが発生するタイミングで、本来のスクロール方向と逆向きにスクロールされてしまう現象があって困る。ぶっちゃけありえない理解不能な解決方法を発見。正しい方法がみつかるまでこれで対処。
// サブクラス化したListBoxのウィンドウプロシージャで。 switch(message) { case WM_VSCROLL: SetWindowLong(hWnd, GWL_STYLE, GetWindowLong(hWnd, GWL_STYLE)); return CallWindowProc(aho, hWnd, message, wParam, lParam); }