powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как свернуть форму в левый нижний угол экрана?
18 сообщений из 18, страница 1 из 1
Как свернуть форму в левый нижний угол экрана?
    #36992266
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. при нажатии на минус стандартно сворачивается на панель задач.
Но некоторые приложения сворачивают в маленький прямоугольник в левом нижнем углу над панелью задач.
Как этого достичь? Если это тяжело, предпочту наверно забить.
Поиск ведет к слову MDI, MDI я один раз давно делал, там похоже конечно...
Но у меня всего одна форма.
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36992288
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чем испытываешь трудность в решнии своей пролемы конкретно?
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36992405
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я трудностей не испытываю. Я вопрос задал:


Дмитрий77Как этого достичь?
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36992496
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Я трудностей не испытываю. Я вопрос задал:
Дмитрий77Как этого достичь?

Раз ты трудностей не испытываешь то напиши код который перехватывает событие которое возникает при сворачивании формы.
Или тебе нужен код? Или ты просто задал вопрос?
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36992516
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или тебя параметр формы ShowIntaskbar=False может устроить?
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36992536
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Как этого достичь?
1. перехватить сворачивание окна
2. отменить его
3. изменить размер формы до минимального
4. разместить форму внизу экрана

несложно но поработать придется
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36992880
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Дмитрий77
> Как этого достичь?
Устанавливает, что координаты свернутого
окна могут быть определены.

Ы?
:)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36992951
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Игорь Горбонос
> Ы?


Вот ещё пример Он правда на работу со структурой, но можно допилять :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36993574
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShamanusДмитрий77Как этого достичь?
1. перехватить сворачивание окна
2. отменить его
3. изменить размер формы до минимального
4. разместить форму внизу экрана

несложно но поработать придетсяДогадываюсь, что так можно.
Я думаю так. Думаю, что можно задать какие-то "флаги" окна (формы) при минимуме кода, что она будет вести так как я хочу. Т.е. (предполагаю) это стандартная фича, кот. никто из Вас (включая меня! иначе б не спрашивал) увы не знает (обидеть никого не пытаюсь!).

Ну т.е. вспоминается пример с вистовским тематическим тулбаром, что бодался в начале года несколько месяцев.
Можно как выяснилось одной волшебной строчкой:
Код: plaintext
        SetWindowTheme g_hwndRebar, StrPtr("Communications"),  0 
а можно через "поработать придется" и километры GDI+- модулей, и оно будет при этом "не так" и по какой-то мелочи себя выдаст.
Shamanus3. изменить размер формы до минимального
4. разместить форму внизу экрана
Обратите внимание что у меня на картиночке пункт "свернуть" недоступен, после Вами указанных действий подозреваю, что он напр. будет доступен, вы предлагаете "перехватить сворачивание окна" (и не сворачивать а минимизировать), а надо напротив чтобы окно было напр. "заранее проинструктировано, куда сворачиваться".

Похожее можно сделать очень просто (вышеупомянутые воспоминания не подвели):
1) создать MDI form
2) создать Form, и поставить MDIchild=true

И будет желаемое поведение, только внутри MDIForm, а не внутри экрана.
Т.е. роль MDI должен грубо/образно играть сам экран.

Игорь Горбонос, спасибо, что-то м.б. близко,но...поигрался...не совсем то.

Вопрос как-бы "не ребром", прожить без этого думаю смогу."поработать придется" здесь думаю не тот подход, а на "поискать придется" времени сейчас не очень.. Видимо правильнее пока забить.
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36994449
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так а чем Вам не подходит ShowIntaskbar
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36994471
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...ну и восьмерку на событие формы перехватывать если надо что то большее
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36994484
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.....не событие , а сообщение которое посылается Вашей форме
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36994511
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtimТак а чем Вам не подходит ShowIntaskbar
Сорри, не придал должного значения
ShowIntaskbar=false дает как раз требуемое поведение в чистом виде (это по поводу left lower corner).
Но проглядел и не придал значения именно потому, что (см.картинку) на тулбар оно тоже отображается.
Пытаюсь копать сюда:
Window Styles
и сюда
Extended Window Styles
играясь с конструкциями
Код: plaintext
1.
2.
Private Sub Form_Load()
    SetWindowLong Me.hWnd, GWL_STYLE, GetWindowLong(Me.hWnd, GWL_STYLE) Or [XXX]
End Sub
или
Код: plaintext
1.
2.
Private Sub Form_Load()
    SetWindowLong Me.hWnd, GWL_STYLE, GetWindowLong(Me.hWnd, GWL_STYLE) And Not [XXX]
End Sub
но пока безрезультатно.
Думаю, должен быть какой-то "стиль" на тему "left lower corner",
а ShowIntaskbar -это не более чем VB-изврат, кот. параллельно этот "left lower corner-стиль" вызывает.
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36994752
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По идее ShowInTaskbar=false отвечает на заданный вопрос.
То же можно реализовать через API (устанавливать через WM_CREATE формы)
Код: plaintext
lSetStyleEX = lSetStyleEX And (Not WS_EX_APPWINDOW)
Пример как это сделать(там решается обратная задача) например здесь:
Forcing Any Window to Show in the Taskbar
Но именно то же самое.
И это стандартная фича.

В картинке что я привел поведение несколько сложнее.
Это инсталлятор, создаваемый программой Smart Install Maker.
Попробую обрисовать подробнее:
1) на панели задач отображение всегда присутствует
2) если нажать минус на форме, то приложение свернется в левый нижний угол(как при ShowInTaskbar=false)
3) в меню (в левом нижнем углу в самом свернутом туда окне) есть опция восстановить (форма разворачивается), но нет опции свернуть
4) в прямоугольнике на панели задач, когда форма развернута или когда в левом углу, есть опция свернуть, и она всегда сворачивает в панель задач(если развернута)
5)если в панели задач применить потом "восстановить", то будет развернуто либо в нормальное состояние, либо в левый угол, в завис. от того что было в начале состояния 4.

Т.е. 2-х ступенчатая конструкция. Либо изврат, либо какая-нибудь хитрость. Но не думаю что это достигнуто путем сложных сабклассингов.
Не знаю надо ли мне теперь это. Но головоломка: как такое сделать.
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #36994823
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В примитиве это реализовывается через 2 формы.
Дефект приложенного варианта в том, что при сворачивании/разворачивании из панели задач эффект что форма "приходит не оттуда" и "уходит не туда", если эту мультипликацию правильно смухлевать то будет "то самое".
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #37017299
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Играясь с кодом, приведенным ZVI Как двигать форму если "шапки" у нее нет.
случайно удалось воспроизвести этот трюк. Пример с трюком вкладываю.
Отличие от оригинала: в оригинале из меню того что в InTaskBar всегда можно сложить в TaskBar/разложить в исходное положение ТО что отображается "нормально" или "в левом углу".

В случае приведенного трюка то что в TaskBar дублирует меню формы один в один.
Т.е. хитрость не полная. Чтоб понять разницу надо скачать мой предыдущий пример с двумя формами.

Как добить? Интерес скорее спортивный.
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #37322546
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77, как обычно искал одно, наткнулся на другое
1
В Вашем последнем посте выложенный пример решён за счёт ShowIntaskbar??
2
Ладно ВБА вроде детство, на ВБ 6 тоже нельзя убрать среднюю из трех значков в углу формы, она у Вас просто недоступна, если можно то как??
...
Рейтинг: 0 / 0
Как свернуть форму в левый нижний угол экрана?
    #37322557
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ещё спросить как сделать, чтобы "шапки" не было у формы, где то попадалось сейчас не вспомню, в тетрадку не записал
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как свернуть форму в левый нижний угол экрана?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]