Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как свернуть форму в левый нижний угол экрана? / 18 сообщений из 18, страница 1 из 1
02.12.2010, 23:01
    #36992266
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как свернуть форму в левый нижний угол экрана?
Т.е. при нажатии на минус стандартно сворачивается на панель задач.
Но некоторые приложения сворачивают в маленький прямоугольник в левом нижнем углу над панелью задач.
Как этого достичь? Если это тяжело, предпочту наверно забить.
Поиск ведет к слову MDI, MDI я один раз давно делал, там похоже конечно...
Но у меня всего одна форма.
...
Рейтинг: 0 / 0
02.12.2010, 23:30
    #36992288
timtim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как свернуть форму в левый нижний угол экрана?
В чем испытываешь трудность в решнии своей пролемы конкретно?
...
Рейтинг: 0 / 0
03.12.2010, 03:49
    #36992405
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как свернуть форму в левый нижний угол экрана?
Я трудностей не испытываю. Я вопрос задал:


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

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

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

Ы?
:)

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


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

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
03.12.2010, 14:46
    #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
03.12.2010, 19:09
    #36994449
timtim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как свернуть форму в левый нижний угол экрана?
Так а чем Вам не подходит ShowIntaskbar
...
Рейтинг: 0 / 0
03.12.2010, 19:24
    #36994471
timtim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как свернуть форму в левый нижний угол экрана?
...ну и восьмерку на событие формы перехватывать если надо что то большее
...
Рейтинг: 0 / 0
03.12.2010, 19:34
    #36994484
timtim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как свернуть форму в левый нижний угол экрана?
.....не событие , а сообщение которое посылается Вашей форме
...
Рейтинг: 0 / 0
03.12.2010, 20:00
    #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
03.12.2010, 23:55
    #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
04.12.2010, 03:54
    #36994823
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как свернуть форму в левый нижний угол экрана?
В примитиве это реализовывается через 2 формы.
Дефект приложенного варианта в том, что при сворачивании/разворачивании из панели задач эффект что форма "приходит не оттуда" и "уходит не туда", если эту мультипликацию правильно смухлевать то будет "то самое".
...
Рейтинг: 0 / 0
16.12.2010, 07:13
    #37017299
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как свернуть форму в левый нижний угол экрана?
Играясь с кодом, приведенным ZVI Как двигать форму если "шапки" у нее нет.
случайно удалось воспроизвести этот трюк. Пример с трюком вкладываю.
Отличие от оригинала: в оригинале из меню того что в InTaskBar всегда можно сложить в TaskBar/разложить в исходное положение ТО что отображается "нормально" или "в левом углу".

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

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


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