Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как запретить resize окна 
:(
    Опции темы
ProgramerForever
  Дата 10.3.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 15.11.2006
Где: Новосибирск

Репутация: 2
Всего: 5



Привет всем! скажите, как ограничить минимальные (и максимальные) размеры окна. В Delphi есть свойства MinHeight MaxWidth или какие-то подобные, не помню точно. Они ограничивают ресайз окна. Пробовал в обработчике resize изменять размеры, но получается дёрганно, да и окно всё равно меняет размеры (потом программно обработчик подгоняет под минимум. но это не решение).
PM MAIL WWW ICQ   Вверх
BorisVorontsov
Дата 10.3.2008, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 5
Всего: 10



Запросто. Лови и обрабатывай WM_SIZING/WM_WINDOWPOSCHANGING.


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
iff
Дата 10.3.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: -1
Всего: 16





--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
JusTalionis
Дата 10.3.2008, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 6
Всего: 17



Если тебе просто надо запретить менять размеры (а не ограничивать макс-мин), то просто выставь свойство формы BorderStyle в Fixed Single (или Fixed Dialog, или другой какой-нибудь fixed).

PM MAIL   Вверх
Akina
Дата 11.3.2008, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Так надо ОГРАНИЧИТЬ (т.е. менять можно, но в заданных пределах) или ЗАПРЕТИТЬ (менять нельзя вообще)?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ProgramerForever
Дата 11.3.2008, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 15.11.2006
Где: Новосибирск

Репутация: 2
Всего: 5



Ограничить. Это более гибкое решение, чем запретить.
PM MAIL WWW ICQ   Вверх
Akina
Дата 11.3.2008, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



В таком разе 
Код

Private Const MinWidth As Long = 8000
Private Const MaxWidth As Long = 12800
Private Const MinHeigth As Long = 6000
Private Const MaxHeigth As Long = 10240

Private Sub Form_Resize()
If Me.Width > MaxWidth Then Me.Width = MaxWidth
If Me.Width < MinWidth Then Me.Width = MinWidth
If Me.Height > MaxHeigth Then Me.Height = MaxHeigth
If Me.Height < MinHeigth Then Me.Height = MinHeigth
' не обязательно, но можно добавить
'DoEvents
End Sub



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ProgramerForever
Дата 12.3.2008, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 15.11.2006
Где: Новосибирск

Репутация: 2
Всего: 5



Нет, такое решение не подходит, я писал в первом топике: получается дёрганно, сами попробуйте.
PM MAIL WWW ICQ   Вверх
Akina
Дата 12.3.2008, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(ProgramerForever @  12.3.2008,  09:32 Найти цитируемый пост)
получается дёрганно, сами попробуйте

У меня получается нормально, никаких дерганий.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
JusTalionis
Дата 12.3.2008, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 6
Всего: 17



Тогда делаешь так:
Запрещаешь изменение размеров формы мышкой (делаешь ее Fixed, как было сказано), и изменяешь ее размеры программно:

Код

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'X,Y, - мышиные координаты
wmin = 1000: wmax = 5000
hmin = 1000: hmax = 5000
If Button = 1 Then 'когда нажата левая кнопка мыши
  If X < wmax And X > wmin Then Form1.Width = X + 200
  If Y < hmax And Y > hmin Then Form1.Height = Y + 500
End If
End Sub


Ну можно еще приделать ограничение, чтоб мышь чувствовалась только у границы формы, сменить значок курсора на стрелочки ресайза, и тому подобные украшательства)))

PM MAIL   Вверх
Rrader
  Дата 12.3.2008, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 6
Всего: 191



Пример в аттаче

Присоединённый файл ( Кол-во скачиваний: 16 )
Присоединённый файл  VBProject.rar 1,84 Kb


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Naghual
Дата 12.3.2008, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Rrader, отличный пример.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Akina
Дата 12.3.2008, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Пример размещен в FAQ


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0638 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.