![]() |
|
|
![]()
|
|
| Skulle |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
Всем привет. Возникла у меня такая интересная ситуация в окне есть тоолбар. Его можно перемещать и он делается попап окном. Когда главное окно MAXIMIZED я тоолбар перемещает на фрейм и в этот момент тоолбар исчезает.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Это что значит. А вообще он где у тебя? Или ты имеешь в виду его стыковку (dock) к фрейму? Значит, неправильный какой-то тулбар, с кривизной... Ты бы написал подробнее, какого вида это фрукт... А может это фрейм у тебя кривой. Во всяком случае, в стандартном MFC-приложении стандартный тулбар так себя не ведет. -------------------- ... |
|||
|
||||
| Skulle |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
![]() На рисунке показан тулбар под цифрой 1 и фрейм под цифрой 2. Этот тулбар наслидуеться от обычного тулбара с перегружен некоторых функциями. А также забранной рамкой над тулбаром. При том как окно имеет мексимальний размер и как я вытаскиваю тулбар на фрейм 2 он после отпускания левой кнопки на мыши исчезает. Это у меня SDI проект в MainFrame я ловлю когда окно имеет максимальный размер я передаю тулбар флаг и в OnMove тулбара запрещаю ему выходить за черту фрейма но чего-то не работает. Подскажите как это можно реализовать. Спасибо.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
А если отключить эти некоторые функции (т.е. использовать обычный тулбар), он продолжает исчезать? Добавлено @ 14:07 Кроме того На картинке у тебя не фрейм а заголовок фрейма. А фрейм - это все окно. Что ты хочешь? Чтобы тулбар был пристыкован как-бы на заголовке (а не плавал)? Так не бывает. Не могу понять что ты хочешь. Да и OnMove у тебя какой-то левый. -------------------- ... |
|||
|
||||
| Skulle |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
Мне необходимо чтобы тулар плавал. И когда я его вытаскивают на заголовок чтобы он ставился под заголовком. Для этого я используется OnMove. Мне нужно сделать так как в офисе когда окно имеет максимальный размер и когда на его заголовок вытаскиваешь тулбар он ставится под заголовком.
Это сообщение отредактировал(а) Skulle - 5.2.2010, 14:39 |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Это совершенно нормальное стандартное поведение тулбара. Только создать его нужно правильно, вернее, пристыковать (dock). И не нужен никакой производный класс (для этого). В стилях пристыковки нужно укaзать, что тулбар может и стыковаться и плавать. При это м не надо никаких OnMove, тем более что плавает тулбар не сам по себе а внутри специального окна, даже двух.
-------------------- ... |
|||
|
||||
| Skulle |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
А можна какойто пример.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Сделай визардом MFC-проект (SDI или MDI) со стандартным тулбаром и будет тебе пример.
-------------------- ... |
|||
|
||||
| Skulle |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
Я так делал но ничево не исменилось
|
|||
|
||||
| Skulle |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
Почтенная Earnest. Я действительно нашел загон в своей функция которая забирала рамку вокруг тулбара. Я бы хотел вас пороситы чтобы вы подсказали в какую сторону копать чтобы правильно убрать рамку вокруг тулбара. Был бы очень благодарен если бы дали пример кода.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Я не поняла ни твоей проблемы, ни какую рамку ты хочешь убрать. Изложи, пожалуйста, еще раз, внятно.
-------------------- ... |
|||
|
||||
| Skulle |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
Нужно удалить или убрать заштрихованная область на изображены. Мне нужно сделать так когда тулбар находится в плавающем состоянии чтобы вокруг него небыло фрейма. Я забираю рамку данным кодом но тогда вылезает проблема которая была описана с самого начала.
Это сообщение отредактировал(а) Skulle - 9.2.2010, 13:37 |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Хм, а как оно будет плавать без заголовка (таскать его за что будешь)?
Исчезает, что ли? А то ты много чего описал... Боюсь, чтобы отбить заголовок (и заодно рамку) у фрейма тебе нужно переопределить сам класс CMiniВockFrameWnd. Где-то в MFC есть место, в которое можно подсунуть свой класс док-фрейма. Или ты вообще его убрать хочешь (CMiniВockFrameWnd)? Но так не получится: только придоченный тулбар может быть без фрейма. Ну т.е. можно поизвращаться, только тогда проще весь MFC с его панелями выкинуть и начать с нуля. -------------------- ... |
|||
|
||||
| Skulle |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.7.2009 Репутация: нет Всего: нет |
Привет Earnest. Спасибо тебе за твои ответы. Двигать я буду за GRIPPER. А когда я прячу рамку и вытаскивают его на заголовок он исчезает (точнее говоря не исчезает а перемещается по координате Y = -22). Может есть какой способ уменьшить высоту заголовка? Или когда я ставлю стиль окна WS_SIZEBOX нужно запретить изменять размер пользователю? А как можно сделать так как MS WORD что тулбар можно дотягивать только на панель заголовка а на нее и за ней не поставишь? Посмотри пожалуйста и если сможешь дай какой-то пример кода.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
По-моему, ты хочешь странного. Но это твое право. Мой опыт показывает, что переопределение стандартного поведения весьма геморройно и чревато разными глюками. Опять же, по-моему, раз хочешь совсем не MFC-шного поведения панелей, лучше отказать от MFC-реализации, больше проблем, чем помощи. Пиши уж с нуля.
-------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |