Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Teranas
-
- Бывалый
-
-
- Сообщения: 224
- Зарегистрирован: 13.12.2008 (Сб) 4:26
- Откуда: Новосибирск
-
Teranas » 08.04.2022 (Пт) 1:33
Как правильно отловить восстановление окна из свёрнутого состояния?
Чтобы на это событие код повесить.
С уважением, Андрей.
-
Mikle
-
- Изобретатель велосипедов
-
-
- Сообщения: 4148
- Зарегистрирован: 25.03.2003 (Вт) 14:02
- Откуда: Туапсе
Mikle » 08.04.2022 (Пт) 8:22
Встроенными средствами, без ухищрений, можно как-то так:
- Код: Выделить всё
Option Explicit
Dim fMin As Boolean
Private Sub Form_Paint()
If fMin Then
MsgBox "Восстановлено"
fMin = False
End If
End Sub
Private Sub Timer1_Timer()
If Me.WindowState = vbMinimized Then fMin = True
End Sub
Таймер установлен на достаточно короткий период, чтобы при сворачивании в любом случае успел сработать.
-
Хакер
-
- Телепат
-
-
- Сообщения: 16475
- Зарегистрирован: 13.11.2005 (Вс) 2:43
- Откуда: Казахстан, Петропавловск
-
Хакер » 08.04.2022 (Пт) 10:32
Mikle, есть два нюанса:
- AutoRedraw должен быть отключен.
- Метод не сработает, если после восстановления клиентская часть окна оказывается чем-то накрыта и ей нет нужды перерисовываться, например, как в случае с окном Блокнота на этом скриншоте
- Вложения
-
- wnd2.png (15.04 Кб) Просмотров: 735
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.
-
Teranas
-
- Бывалый
-
-
- Сообщения: 224
- Зарегистрирован: 13.12.2008 (Сб) 4:26
- Откуда: Новосибирск
-
Teranas » 08.04.2022 (Пт) 15:55
Я как-то давно давно делал с помощью WinApi и таймера VB6,
но мне это показалось корявым решением,
вот и поинтересовался, может у кого есть более интересное решение,
возможно, с помощью хуков, или стандартными средствами VB6.
С уважением, Андрей.
-
The trick
-
- Постоялец
-
-
- Сообщения: 775
- Зарегистрирован: 26.06.2010 (Сб) 23:08
The trick » 08.04.2022 (Пт) 19:21
WM_SYSCOMMAND / WM_SIZE
UA6527P
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 3