Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > поместить окно назад (ZORDER)


Автор: Zmeevic 21.1.2008, 15:11
Вот такой вопрос: есть окно меню у него тень (падает влево-вниз), когда оно не помещается на экране с правой стороны, то оно показывается слева от предыдущего меню, и теперь тень попадает на меню, которое стоит левее, задача при выводе окна помещать его не сверху, а ниже предыдущего окна:

SetWindowPos() с HWND_BOTTOM не помогает...
надо что-то типа BringWindowToTop() только наоборот  ...  smile 

Автор: BorisVorontsov 21.1.2008, 17:30
Цитата(Zmeevic @  21.1.2008,  15:11 Найти цитируемый пост)
SetWindowPos() с HWND_BOTTOM не помогает...


А ты ему не присваивай владельцем предыдущее

Автор: Zmeevic 21.1.2008, 18:42
у них одинаковый родитель
Код

hSubWnd=CreateWindowEx(0,L"SubMenuWindow",L"",WS_POPUP,0,0,0,0,StyleMenuBar::pMenuBar->hMenuWND,(HMENU)NULL,StyleMenuBar::pMenuBar->hInstance,NULL);



у всех окон подменю родителем выступает окно меню (MenuBar) <StyleMenuBar::pMenuBar->hMenuWND>
поидее в данном случае SetWindowPos() должно работать... но не работает... 

Вызываем функцию SetWindowPos() с HWND_BOTTOM для окна,
тогда в оконной процедуре этого окна, при обработке WM_WINDOWPOSCHANGING получив указатель на структуру WINDOWPOS
по идее мы должны обноружить, что поле hwndInsertAfter должно быть равно HWND_BOTTOM, если логика правильная, то почему у меня
hwndInsertAfter == 0 ??? 

Автор: Zmeevic 22.1.2008, 15:55
Пошел другим путем, все пред. окна =  BringWindowToTop()...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)