Страница: 1 |
Страница: 1 |
Вопрос: Хелп
Добавлено: 26.03.06 21:14
Автор вопроса: SL | ICQ: 277007669
Когда убираю окно ShowWindow, то остаётся его значок в панели задач. А как его убрать?
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Tamplier
ICQ: 298742928
Вопросов: 58
Ответов: 340
Профиль | | #1
Добавлено: 27.03.06 18:57
Поподробней, плиз. Код в студию и все такое.
Что есть ShowWindow (форма?), как ты его убираешь?
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 27.03.06 21:53
Есть такая структура
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Private NID As NOTIFYICONDATA
И есть такой код
'удаление иконки из Tray
Dim ret As Long
'заполняем структурку
NID.cbSize = Len(NID)
'вызываем функцию API
ret = Shell_NotifyIcon(NIM_DELETE, NID)
End Sub
hwnd и uID структуры и есть ShowWindow.hwnd
т.е. ты должен при ShowWindow_Unload организовать Delete иконки
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 27.03.06 21:54
забыл
Private Const NIM_DELETE = &H2
А вообще посмотри примеры, неужели нигде в них нет удаления за собой иконки
Номер ответа: 4
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #4
Добавлено: 28.03.06 04:34
HACKER
При чём здесь панель задач и область уведомлений?
SL
Чтобы не париться в будущем, бери Spy++ и анализируй поведение других окон.
Номер ответа: 5
Автор ответа:
SL
ICQ: 277007669
Вопросов: 10
Ответов: 86
Профиль | | #5
Добавлено: 28.03.06 10:56
Не в трее иконка застряла, хотя и там тоже, но мне не надо, так как трудно найти нужное hwnd....
эта прога прсото внизу, где сворачиваются и разворачиваются проги
в бейсике это ShowInTaskBar
проги убираются все, а это нет (с помощью этой функции)
Номер ответа: 6
Автор ответа:
Tamplier
ICQ: 298742928
Вопросов: 58
Ответов: 340
Профиль | | #6
Добавлено: 28.03.06 14:52
Так оно в процессе выполнения кода Read-only... Кажись... Или ты до выполнения кода это делаешь?
Номер ответа: 7
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #7
Добавлено: 28.03.06 15:35
(c) mc-black
Const GWL_EXSTYLE As Long = -20
Const WS_EX_APPWINDOW As Long = &H40000
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Sub Form_Load()
Dim Ret As Long
Ret = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
Ret = Ret And Not WS_EX_APPWINDOW
Ret = SetWindowLong(Me.hwnd, GWL_EXSTYLE, Ret)
End Sub