Как переместить полосу прокрутки окна по умолчанию над строкой состояния? - PullRequest
1 голос
/ 08 марта 2009

Каждая программа имеет полосу прокрутки над строкой состояния. Правильно? Ну, не мое.

Когда я попытался настроить собственные полосы прокрутки в своей программе, я удивительно заставил их работать! Так же мне удалось заставить работать строку состояния! Ура! :-) ... Но строка состояния находится над полосой прокрутки, когда она должна быть под полосой прокрутки. Как мне переместить полосу прокрутки? я не мог найти какие-либо функции о перемещении полосы прокрутки. если я сам не создал окно полосы прокрутки, но это не сработало очень хорошо ( у него была странная ошибка: когда я использовал высоту по умолчанию, она стала полностью невидимой полосой прокрутки, а когда я использовал мою определенную высоту, полоса прокрутки имела тему Windows98 или что-то о_О !)

Вот мой код создания строки состояния:

// Create status bar
hStatus = CreateWindowEx(
    0, 
    STATUSCLASSNAME, 
    NULL, 
    WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 
    0, 0, 0, 0, 
    hWnd, 
    (HMENU)IDC_MAIN_STATUS, 
    GetModuleHandle(NULL), 
    NULL
);

и создание окна:

if (!(hWnd=CreateWindowEx(dwExStyle,            // Extended Style For The Window
    "OpenGL",                   // Class Name
    title,                      // Window Title
    dwStyle |                   // Defined Window Style
    WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | 
    WS_CLIPCHILDREN | WM_HSCROLL | WM_VSCROLL,  // Required Window Style
    0, 0,                       // Window Position
    WindowRect.right-WindowRect.left,       // Calculate Window Width
    WindowRect.bottom-WindowRect.top,       // Calculate Window Height
    NULL,                       // No Parent Window
    NULL,                       // No Menu
    hInstance,                  // Instance
    NULL)))                     // Dont Pass Anything To WM_CREATE

Должен быть какой-то изящный трюк, который я еще не осознал, кто-нибудь просветит меня, как сделать это правильно?

1 Ответ

2 голосов
/ 08 марта 2009

Запустите блокнот и проверьте его с помощью spy ++, и вы увидите область с полосой прокрутки и строкой состояния - это два одноранговых окна с общим родителем. Вы также должны сделать это, а затем использовать SetWindowPos (), чтобы расположить два окна относительно друг друга всякий раз, когда родительское окно меняет размер или положение.

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