Как создать в окне отдельные скроллируемые области, внутри которых располагаются и скроллируются бегунками этой области свои собственные контролы?
Создаешь окно со стилями WS_HSCROLL | WS_VSCROLL Обрабатываешь сообщения WM_HSCROLL & WM_VSCROLL c использованием SetScrollInfo или чего-нибудь подобного. Как приходит сообщение - MoveWindow/SetWindowPos/DeferWindowPos/ еще что-нибудь. DeferWindowPos afaik предпочтительней Используешь ScrollWindowEx с соответствующими флагами, конкретно - SW_SCROLLCHILDREN|SW_INVALIDATE. Короче, тоже самой что и скроллинг битмапа, только вместо BitBlt - DeferWindowPos + ScrollWindowEx (+SW_SCROLLCHILDREN)
Novi4ek Оказалось, даже самому и не надо ничего двигать. ScrollWindowEx посылает WM_MOVE дочерним окнам. В аттаче то что вышло у меня. Все вроде ничего, но вот InvalidateRect, [hwnd], 0, 1 в двух местах мне оч. не нравятся. Но без них никак что-то. ХЗ, может стоит перед этим брать GetUpdateRect и передавать в InlvalidateRect указатель на полученный прямоугольник... Может еще кто что подскажет...
>>Оказалось, даже самому и не надо ничего двигать. ScrollWindowEx посылает WM_MOVE дочерним окнам. Вот я думал что по идее должно быть что-то в этом роде. >>В аттаче то что вышло у меня. Все вроде ничего, но вот InvalidateRect, [hwnd], 0, 1 в двух местах мне оч. не нравятся. Но без них никак что-то. ХЗ, может стоит перед этим брать GetUpdateRect и передавать в InlvalidateRect указатель на полученный прямоугольник... У меня твой пример не работает - при разворачивании окошка в нем застывает беграунд, никакого собственого контента не видно. Да и жалко что пример на ассемблере.