comctl32/listview: update dwStyle before checking for scrollbar

Daniel Jelinski djelinski1 at
Sat Sep 22 12:41:08 CDT 2012

Hello Nikolay,
I'm not sure. There are some tests:
Comments indicate that some systems send WM_STYLECHANGED to windows
with non-client area, and no systems send it to windows without it. I
haven't figured out yet if the comment is true or to which category
ListView belongs.

Out of curiosity I checked which systems send WM_STYLECHANGED:
Vista and Windows 7 do send it, others do not, neither does Wine.
Judging by the code it doesn't look like a quick fix to me (but I
wouldn't mind if someone proved me wrong here).


PS. I guess I should have used GetWindowLong instead on
GetWindowLongPtr. Not sure if I should bother with resending now.

2012/9/22 Nikolay Sivov <nsivov at>:
> On 9/21/2012 23:07, Daniel Jelinski wrote:
>> dwStyle is updated only in WM_STYLECHANGED, which is not sent
>> when displaying and hiding scrollbars.
>> Fixes the issue where there was a large margin between items
>> and horizontal scrollbar (e.g. in file open dialog).
> Are you sure it's really not supposed to be sent when WS_HSCROLL/WS_VSCROLL
> bits are changed?
> A quick test with ControlSpy shows style changing messages when I set/reset
> these. So it's possible there's a bug
> outside of comctl32.

More information about the wine-devel mailing list