Управление внешним видом полосы прокрутки в Windows 7 - PullRequest
1 голос
/ 21 мая 2011

У меня есть приложение, в котором есть элемент управления ListView с полосами прокрутки, и в нем автоматически отображаются классные полосы прокрутки:

CreateWindowExW(WS_EX_WINDOWEDGE,L"SysListView32",L"MyList",
WS_CHILD|WS_VISIBLE|LVS_NOSCROLL|LVS_REPORT|LVS_NOCOLUMNHEADER|WS_VSCROLL|LVS_SHOWSELALWAYS| LVS_SINGLESEL,
0,0,500,290,ownerhWnd, (HMENU)0,hInst,NULL);

Однако, когда я вручную создаю элемент управления «Полоса прокрутки» для другой части приложения, он выглядит более старым в стиле 3d:

CreateWindow(TEXT("SCROLLBAR"), TEXT("MyScrollBar"),
WS_CHILD | WS_VISIBLE | SBS_VERT,0,0, CW_USEDEFAULT,
100, ownerhWnd, (HMENU)10 , NULL, NULL); 

Как мне придать ему новый вид? Есть ли другой элемент управления, который я использую, или стиль, который я могу применить к стандартному элементу управления? Я заглянул в Flat Scroll Bar, однако там написано, что он не поддерживается начиная с XP?

Спасибо

Ответы [ 2 ]

4 голосов
/ 21 мая 2011

Сначала вам нужно создать манифест для вашей программы, который указывает, что он использует Common Controls версии 6. Затем вы должны вызвать InitCommonControls при запуске программы.

Подробности находятся на этой странице Microsoft:

http://msdn.microsoft.com/en-us/library/bb773175%28v=vs.85%29.aspx

1 голос
/ 21 мая 2011

Может быть, открытая дверь, но вы добавили манифест Windows XP / Vista / 7 в ресурсы своего приложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...