![]() |
|
|
![]()
|
|
| kurlyak |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 7.11.2007 Репутация: 1 Всего: 3 |
Вобщим пишу SDI приложение. Ограничил размеры окна на 500 и 250 по x,y (мне так надо).
Теперь другая проблема. Вот я запускаю мое приложение- окно появляеться на экране. Все нормально, размеры окна изменить нельзя- жестко 500 на 250. Но когда щелкаю мышей дважды на нижней кромке окна или на верхней кромке окна (но не на заголовке где название приложения) окно перемещаеться под самый верх экрана. Я пробывал еще разные варианты- например окно может переместиться в самый верх и развернуть нижнюю кромку до самого низу рабочего стола - то есть окно по высоте становиться как высота рабочего стола- причем с левой и правой кромками окна такого не происходит- жестко ширина 500. И так как я запретил изменение размеров окна, то после дв. щелщка на верх.ниж.кромках- оно не разворачиваеться от верху рабочего стола до низу рабочего стола (сохраняя ширину при этом) а просто перемещаеться в самый верх рабочего стола. Короче мне надо что бы окно не прыгало по рабочему столу, когда пользователь может два раза щелкнуть на ниж.верх.кромке окна. Как я понимаю за перемещение окна отвечает WM_MOVE. Но если я вобще переопределю и заблокирую WM_MOVE - то пользователь по желанию не сможет перемещать окно. То есть мне надо что бы отключить это перемещение окна по дв. наж. мыши на ниж.верх. кромках, но сохранить возможность перемещения окна при желании пользователя. Хто понял- о чем я, прошу подсказать. |
|||
|
||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
запретить изменение размеров окна и задать исходный размер можно в PreCreateWindow(). Нужно просто убрать стиль WS_THICKFRAME в параметре style структуры CREATESTRUCT, передаваемой в функцию и задать параметры cx и cy. И ещё, сделав эти изменения вы можете не увидеть результата, так как программа уже запускалась и есть запись в реестре. Нужно удалить всю ветвь, связанную с программой и после этого вновь запустить свою прогу.
|
|||
|
||||
| kurlyak |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 7.11.2007 Репутация: 1 Всего: 3 |
Спасибо буду пробовать.
|
|||
|
||||
| kurlyak |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 218 Регистрация: 7.11.2007 Репутация: 1 Всего: 3 |
Попробовал вобщим WS_THICKFRAME - теперь не могу менять размеры окна. А мне надо что бы пользователь мог менять размеры окна.
Я объясняю второй раз в чем проблема. У окна есть нижняя и верняя кромка. Когда два раза щелкаю мышей на нижней кромке в моей программе- окно разворачиваеться во всю высоту экрана, но по ширине остаеться как раньше. Как это заблокировать что бы окно не разворачивалось на всю высоту экрана? У меня Вин7 может под ХР по другому это работает. |
|||
|
||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Ну, вероятно меня натолкнули на такую мысль одинаковые размеры в OnGetMinMaxInfo() Здесь непонятно, а нет ни какого функционала в программе, обеспечивающего такое поведение? У меня ХР и смоделировать такое поведение не получается. Посмотрел SPY-ем, при двойном щелчке на кромке окна вижу только WM_LBUTTONUP, хоть при одиночном, хоть при двойном клике. Даблклик проходит только как WM_NCLBUTTONDBLCLK можно попробовать перекрыть этот обработчик убрав базовый вызов OnNcLButtonDblClk() Это сообщение отредактировал(а) Albor - 17.3.2013, 15:27 |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 1 Всего: 39 |
Чтобы работало как мне помниться нужно не ставить одинаковые цифры
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 1 Всего: 39 |
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |