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


Автор: devmstr 7.4.2006, 09:50
У меня есть TreeView. Мне необходимо, чтобы при нажатии кнопки, разворачиваюшей TreeView's Item у меня на TreeView появлялось что-то ввиде панели. Так как на нем будут располагатся некоторые Controls, сообщения от которых мне нужно обрабатывать, я решил, что в данном случае уместно показывать неможальный диалог.
Я добавил в Resource новый FormView Dialog. И сделал, пока, чтобы он показывался по щелчку на кнопке формы.
Но возникла проблема. Пытаюсь его двигать(вызываю в InitDialog, самого диалога):
Код

if (!SetWindowPos(hDlg, HWND_TOPMOST, 80, 100, 0, 0, SWP_NOSIZE|SWP_SHOWWINDOW))
                MessageBox(hDlg, TEXT("ERROR"), NULL, 0);

- не двигается, причем возвращает не нулевое значение(Nonzero indicates success. MSDN).
Если в свойствах Dialog установить начальные значения X pos и Y pos, то он на них и сдвигается.
Как мне все таки своими силами подвинуть этот диалог.

Когда я сделал Dialog потомком моего главного Dialog он все равно отказался двигатся, так что дело вовсе не в TreeView

Автор: Earnest 7.4.2006, 16:34
Добавь обработчик ON_WM_WINDOWPOSCHANGING и посмотри, не перемещает ли его кто после тебя?
А вообще, именно SetWindowPos и двигает окна, только параметры проверь (координаты). Если панель у тебя дочерняя, то координаты должны быть относительные...

Автор: devmstr 9.4.2006, 12:41
Цитата(Earnest @ 7.4.2006, 16:34 Найти цитируемый пост)
ON_WM_WINDOWPOSCHANGING и посмотри, не перемещает ли его кто после тебя

Неа.

Проблема ,как я понял заключается вовсе не в TreeView. Когда я сделал Dialog потомком моего главного Dialog он все равно отказался двигатся...


Автор: devmstr 9.4.2006, 16:21
Ответ:
If the SWP_SHOWWINDOW or SWP_HIDEWINDOW flag is set, the window cannot be moved or sized.

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