Страница: 1 |
Страница: 1 |
Вопрос: работа с формой
Добавлено: 20.10.05 17:54
Автор вопроса: Barsik | Web-сайт:
у мя два вопроса.
first
есть окно, иконка в трее.
по иконке в трее кликают и в зависимости от состояния формы делают дейтвия:
1) если форма спрятана(visible=false), то показываем ее;
2) если видна(visible=true), но не активна, то выводим ее на передний план(делаем активной);
3) ну а если видна(visible=true) да и еще активна, то прячем ее(visible=false).
все бы ничего да есть одна загвоздка с определение активности формы. когда выполняю код с формы, то все работает, но когда все это делаю с трея, нифига. а дело-то вот в чем. когда кликаю на иконку в трее, активным ведь становится трей :(.
second
есть окно, иконка в трее.
я хочу, чтоб при клике по кнопке минимизации на форме окно не сворачивалось в панель задач, а чтоб исчезало. т.е. типа сворачивалось в трей.
помогите решить траблы! оч. нужно ;)
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #1
Добавлено: 20.10.05 19:41
я хочу, чтоб при клике по кнопке минимизации на форме окно не сворачивалось в панель задач, а чтоб исчезало. т.е. типа сворачивалось в трей.
На Form_Resize пиши:
If Me.Windowstate = vbMinimized Then
' ну тут ты ее в трэй сворачиваешь
End If
Номер ответа: 2
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #2
Добавлено: 20.10.05 19:46
по иконке в трее кликают и в зависимости от состояния формы делают дейтвия:
1) если форма спрятана(visible=false), то показываем ее;
2) если видна(visible=true), но не активна, то выводим ее на передний план(делаем активной);
3) ну а если видна(visible=true) да и еще активна, то прячем ее(visible=false).
все бы ничего да есть одна загвоздка с определение активности формы. когда выполняю код с формы, то все работает, но когда все это делаю с трея, нифига. а дело-то вот в чем. когда кликаю на иконку в трее, активным ведь становится трей .
Да, вспомнил и это:
Надо сначала не показывать форму (visible)
Для начала загрузи ее (Load Me)
Затем покажи (Visible)
Наконец (Me.Show)
И сделай активной с помощью vbNormalFocus
Теоретически должно заработать..
Номер ответа: 3
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #3
Добавлено: 20.10.05 20:59
If Me.Windowstate = vbMinimized Then
' ну тут ты ее в трэй сворачиваешь
End If
ты сам пробовал? у меня не прокатило.
Надо сначала не показывать форму (visible)
Для начала загрузи ее (Load Me)
Затем покажи (Visible)
Наконец (Me.Show)
И сделай активной с помощью vbNormalFocus
Теоретически должно заработать..
проблем с тем, чтоб сделать форму активной нет, проблемы с определением ее активности
пс. читай внимательней )
Номер ответа: 4
Автор ответа:
Discaprio
ICQ: 4443928
Вопросов: 7
Ответов: 37
Профиль | | #4
Добавлено: 20.10.05 21:18
Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Sub Form_Load()
If GetActiveWindow = Form1.hWnd Then
'Если форма активна
Else
'Если форма не активна
End If
End Sub
Номер ответа: 5
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #5
Добавлено: 21.10.05 02:20
Имхо, GetForegroundWindow надо
Номер ответа: 6
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #6
Добавлено: 21.10.05 12:55
чуваки яж сказал, что при клике в трее, активным становится трей (
похоже придется сабклассить форму...
пс. читайте внимательно вопрос.
Номер ответа: 7
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #7
Добавлено: 21.10.05 22:21
ну че чуваки никто не знает?
Номер ответа: 8
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #8
Добавлено: 21.10.05 22:38
Слышь чувак этот вопрос много раз рассматривался. Еще в учебнике по VB5. Гугл тебе поможет, на крайняк рамблер или яндекс. Ключевая фраза - туды к часикам, или - как свернуть программу в трей.
Номер ответа: 9
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #9
Добавлено: 21.10.05 23:28
я же четко написал что мне нужно!