Есть MDI приложение. Надо сделать так, что бы окна можно вытаскивать наружу (делать самостоятельными окнами) и втаскивать обратно. Использоваться будет, главным образом, для многомониторных систем.
Как сделать поудачней? Может быть где-нибудь такое, что бы не изобретать?
Просто вытаскивать окно наружу не получится, видимо -- курсор упирается в край родительского окна.
Втаскивать -- тоже, потому что непонятно, как отличить, то ли пользователь внутрь родительского перетащил то ли просто сверху.
Re: Вытаскивать окна из MDI и втаскивать обратно
От:
Аноним
Дата:
18.08.12 09:46
Оценка:
Y>Может быть где-нибудь такое, что бы не изобретать?
visual studio shell
вроде оно даже бесплатное
Re[2]: Вытаскивать окна из MDI и втаскивать обратно
> Есть MDI приложение. Надо сделать так, что бы окна можно вытаскивать наружу (делать самостоятельными окнами) и втаскивать обратно. Использоваться будет, главным образом, для многомониторных систем. > Как сделать поудачней? Может быть где-нибудь такое, что бы не изобретать? > > Просто вытаскивать окно наружу не получится, видимо -- курсор упирается в край родительского окна. > Втаскивать -- тоже, потому что непонятно, как отличить, то ли пользователь внутрь родительского перетащил то ли просто сверху.
Да как бы стандартный функционал для docking контролов. Пошариться в gui библиотеках.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[2]: Вытаскивать окна из MDI и втаскивать обратно
>> Да как бы стандартный функционал для docking контролов. Пошариться в gui библиотеках.
G>Оно конечно не MDI, но если есть возможность это обойти то проблема будет решена.
Мне не нужна реализация, мне нужно представление того, как это будет выглядеть для пользователя.
А как "обойти" я не представляю.
В VS взяли "вкладку" за заголовок и потащили -- она стала окном. В MDI окно взяли за заголовок и потащили -- курсор уперся в границу родительского окна. Ну, допустим, если треть окна выехала за границы, делаем его отдельным. Может и криво, а может и нормально будет в итоге.
А вот как обратно его затащить? Вдруг пользователь просто сверху его решил разместить, а не внутрь затащить? Или никто не решит "размещать сверху", потому что это будет значить, что при потере фокуса дочернее окно скроется под родительским(?)...
Приветствуются соображения, а еще лучше примеры, если в каком софте где-нибудь такое чудище уже реализовано.
От MDI отказаться не предлагать.
Re[4]: Вытаскивать окна из MDI и втаскивать обратно
> Мне не нужна реализация, мне нужно представление того, как это будет выглядеть для пользователя. > А как "обойти" я не представляю. > В VS взяли "вкладку" за заголовок и потащили -- она стала окном. В MDI окно взяли за заголовок и потащили -- курсор уперся в границу родительского окна. Ну, допустим, если треть окна выехала за границы, делаем его отдельным. Может и криво, а может и нормально будет в итоге. > А вот как обратно его затащить? Вдруг пользователь просто сверху его решил разместить, а не внутрь затащить? Или никто не решит "размещать сверху", потому что это будет значить, что при потере фокуса дочернее окно скроется под родительским(?)... > > Приветствуются соображения, а еще лучше примеры, если в каком софте где-нибудь такое чудище уже реализовано. > От MDI отказаться не предлагать.
Я нормального примера с перетаскиванием не знаю. Потому что все те примеры что я помню, они неудобны. Тот же docking в VS вынужден решать эти вопросы через дополнительную графическую индикацию способа расмещения, когда мы перетаскиваем окошко над родительским окном. Лучшее — переключатель способа размещения. То есть у MDI окна есть кнопка MDI vs Свободное окно.
Posted via RSDN NNTP Server 2.1 beta
Забанен на рсдн за применение слова "Маргинал"
Re[5]: Вытаскивать окна из MDI и втаскивать обратно