Отключаем мигание формы при ограничении ресайза

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Отключаем мигание формы при ограничении ресайза

Сообщение Cyrax » 14.04.2004 (Ср) 16:36

только что идея пришла... не знаю куда лучше ее положить (администрация обещала создать раздел с полезняшками, но так это и осталось обещанием).
ладно, ближе, как говорится, к телу...
и так, многие (особенно начинающие) задаются вопросом: "Как ограничить минимальный размер окна приложения, сохранив при этом возможность изменения размеров?". ответ на этот вопрос напрашивается сам собой: "Обрабатываем событие Form_Resize() и восстанавливаем размеры окна, если они стали меньше (или больше) допустимых". но при этом появляется неприятный эффект - окно начинает мигать. может быть, кто-то уже и решил эту проблему индивидуально для себя, но я в сети решений не припомню. а сего дня эксперементируя над новым интерфейсом в голову пришла, на первый взгляд, глупая идея: " А что, если при достижении граничных размеров взять и отключить форму, а перед выходом из процедуры Form_Resize() включить..."
вот что у меня получилось
Код: Выделить всё
Private Sub Form_Resize()
  If Me.WindowState <> vbMinimized Then ' страхуемся от ошибок, когда форму сворачивают
    If Me.Width < 8000 Then ' проверяем ширину
      ' точно также можно и на максимальныцй размер проверять
      Me.Width = 8000
      Me.Enabled = False
    End If
    If Me.Height < 7000 Then ' ну а тут высота
      Me.Height = 7000
      Me.Enabled = False
    End If
  End If
  Me.Enabled = True ' включаем форму (в любом случае)
End Sub
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 14.04.2004 (Ср) 19:25

Оригинальное решение :idea: ... Вот только при достижении минимальных/максимальных размеров курсор "срывается", и чтобы продолжить изменения размера приходится снова щёлкать на границе окна... Но это не так уж и страшно :)
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.04.2004 (Чт) 10:15

Помнится, кто-то утверждал, что нужно учить матчасть... Кто же это был, не припомню... :wink:

Ну так вот, есть такая весчь, называется MINMAXINFO ...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 15.04.2004 (Чт) 12:41

Классно.....отключил, включил....отключил, включил....
Берем на вооружение.... спасибо... :D

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 15.04.2004 (Чт) 21:53

Это к первому посту:
Позволю себе заметить, что решение не оригинальное :)
Довольно давно я уже его предлагал... Упёрся тоже в "срывание" курсора...

А это - к предпоследнему :)
Интересная штука! Буду иметь в виду ;-)


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 111

    TopList