![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
У меня в приложении (MFC) есть парочка немодальных диалоговых окон.
Хотелось бы, чтоб при желании юзер их мох "слепить" в одно, как это сделано, например, в winamp. Ну и чтоб это было красиво Хочешь сказать "иди на firststeps.ru почитай?" Читал. А ты переведи тот код для твоих немодальных окошек в обычном проекте на Visual C++ с MFC. А еще тот код на NT/2000/XP некомпалится. --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
просто при изменение положения одного из окон ты должен уведомлять про это остальные окна своего приложении, при установленном флаге склеивания остальные окна должны себя перерисовывать в новой позиции расчитаной из позиции перетаскуемого. ЭТО ТАК СКАЗАТЬ РЕШЕНИЕ В ЛОБ.
На первые шаги ща зайду и посмотрю че там рекомендуют -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
а где ты там на firststeps.ru нашел подобное, я что-то не нашел...
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Ух-ты! Шустро вы тут отвечаете
Перетаскивание я себе представляю. Прилипание не представляю. Как определить положение одного окна другим? Передавать положение одного диалога в приложение, а другим оттуда читать? Какой-то неудобный и не уневерсальный способ... --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
8 закладка в Visual C++.
Там листинг DOS-подобный. winmain(), case-ы и т.п. --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
pish_r, это не DOS-подобный (обиженно), это САМОЕ нормальное виндовс приложение
А про склеивание, дык кто тебе мешает смореть условия: 1. если расстояние между окнами уменьшается && оно меньше, скажем, пяти, то делаем расстояние в 0. 2. если расстояние между окнами начинает расти, то тады пускай оттаскивают. Думаю, что реализовать это - не проблема. -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Baa, Погляди в окошко... 21 век на дворе... На С/Си++ пишут милионы людей... Зачем писать то, что давно уже написано?
По поводу склеивания. Дык вот хочется решить эту проблему обьектно-ориентированно... Классики наследуемые от диалога написать бы... Чтоб не с конкретными окнами работало, а чтот типа того: допустим классы 1. CMainLipuchkaDlg 2. CDominLipuchkaDlg Вот к диалогу наследуемого от первого класса липнут диалоги насл. от второго. --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Ну и напиши... в чем проблема? ;\ общая суть известна, а если пользваться токо тем, что сделал кто-то, то получается, что сам ты не знаешь ничего.
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Хм... Как бы еще обьяснить... Ладно вопрос поставим так: Как диалог наследуемый от CMainLipuchkaDlg узнает, что к нему приблежается диалог наследуемый от CDominLipuchkaDlg?
--------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: 1 Всего: 62 |
Privet!
Vy znaete chto takoe svoi'stva klassa? Jeto kogda menjaetsja kakoe-nibud' znachenie v klasse i srabatyvaet obrabotchik jetogo izmenenija. Vot, sobstvenno, chto meshaet sdelat' onoe i v odnom i v drugom klasse. Kogda okno izmenjaet svoe polojenie, kak opisal Baa my izmenjaem znachenija svoistva vo vseh oknah v jetom diapazone, dalee u nih vyzyvajutsja obrabotchiki ... i vse. V chem vopros? Ja lichno tak i ne ponjal ... -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Вопрос звучит не так: "Как обработать движение окна". Как дочерний диалог определит, что именно к данному диалогу нужно прилипнуть?
--------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
pish_r ты ж понимаеш, вот и запраграммирую свои россуждения по этому поводу, программа должна понимать примерно также
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Опять 25
--------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
да причем сдесь мфс, тебе надо что б одно окно писало свои координаты и размер в переменные, а все другие проверяли свои координаты по отношению к основному и делали соответсвующии выводы.
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Хотя, действительно, нужно будет сделать чтоб CMainLipuchkaDlg принимал какими-то методами список окон экземпляов CDominLipuchkaDlg... На этом и порешим.
--------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
кстати посмотрел я первые шаги, там все впринципе правильно расписанно...
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Только используются WinAPI, на которые ХРя например матерится. И еще:
WPARAM-что это за структура, и как мне ее выдрать с моего диалога? --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Там функции принимают эту структуру. Что мне передать этой функции там где он просит WPARAM?
--------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
это функции обработки сообщений, они создаються визуалом, а ты их просто редактируеш, и значение параметра тебе дает система.
обработчик сообщения WM_SIZING или какогото подобного, я точно не помню
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
WPARAM определен просто как скажем DWORD или мона запихать туда HWND и т.д.
короче просто 4 байта. (в WIN32) |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Ну вставлю я эту функцию на OnMoving: DockedOnSizing(wParam, & fMoving) Он мне ответит: переменная wParam не определена. Че мне пихать вместо нее? --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Шо попало, думаю, вставлять неумно. См. листинг выше. Он активно работает с этой переменной: if(wParam==9)... (Почему девять?) --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
И в параметрах WM_SIZING или WM_MOVING WPARAM нету. Там координаты окна есть, например.... Интересно, как эта структура выглядит. Мож ей насильно координаты запихать?
--------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
pish_r кидай свой код. посмотрим его
да не ты ее вставишь, а визуал, а ты просто укажеш сообщение мовинг, и он функцию сам назначит, впарам определять не надо. свой код кодий -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Хм... Какой код? В первых шагах есть функции. ты их видел. Ну вот я запихиваю их в отдельную h-ку, подключаю к своему диалогу. Потом перегружаю WM_MOVE (как аналог case в том коде):
И использую тут функцию DockedOnMoving(wParam, fSave); Флаг fSave (флаг активной кромки) как они рекомендуют делаю заранее. Компиляция, естественно, непроходит. wParam неопределен. Может я чего-то недопонимаю... --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Уже два дня жду, когда тебе посоветуют хелп внимательно почитать |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Вот, блин
А как бы ты использовал эти функции? --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
||||
|
|||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Есть Я конечно правдолюб, но мое соотношение инь и янь мне дороже. Напишу-ка я сам... Напишу-ка я песню... О любви... Только что-то струна порвалась... Да сломалось перо... И вообще пятница сегодня... И три ночи не спал... И организ пересыщен кофеином и никотином... Может поэтому туплю... Бывает... --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
||||
|
|||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
О! И ты три ночи не спал? Не в мсдн. Это функции с с урока про прилипание окон на firststeps.ru ^)
--------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
ты мне скажи, ты вот это видел
попробуй и напиши результат -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Конечно видел. О чем и толдычил весь день. Вместо case перегружаю нужные методы. Нихрена не выходит.
А как ты говоришь? В какую функцию вставить --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
А, НАШЕЛ! Есть тут этот злощастный fParam.
--------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
pish_r ну, и все прекрасно решается как мне кажется
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Senks. Вообщем-то это, наверно, и хотел услыхать.
--------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
pish_r Я Я (произнеси по немецки)
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Рано я ,понимаешь, радоваться начал.
Компалится все, красота... НО... Приложение с этим кодом просто падает.... Ошибку тычет на USER32.dll Это правда под ХР... Вот такой казус. Все, надоело. Пишу сам. Перегрузим WM_MOVE и.т.п. оно надежней будет. --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Уже не падает
Но не работает --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
А теперь не падает и работает
--------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
| pish_r |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 27.2.2003 Репутация: нет Всего: нет |
Благодарю всех за участие.
Тему можно считать зарытой. --------------------
________________-=тУт быЛ pisH_r=- |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |