Резместить картинку в трее

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Резместить картинку в трее

Сообщение X-BOND » 26.04.2004 (Пн) 14:10

Как можно разместить в трее картинку, которая может динамично меняться. (как, например, бегут проценты при копировании файлов в TotalCommander)

Примечание:
Форм в проекте быть не должно.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 26.04.2004 (Пн) 14:16

Вот, если бы в проекте были формы, я бы подсказал...
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 26.04.2004 (Пн) 18:43

Ну ты задачку задал 8)
Я уже 3 часа бьюсь :)
Загвоздка в том, как нарисовать картинку из памяти в контекст устройства формы :)

Небоись, форм в проекте нет, создавать их в памяти я уже научился:)

Есть идеи? :roll:
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 26.04.2004 (Пн) 18:53

Предполагаю, что надо юзать CreateCompatibleDC и иже с ним.
Щас домой прийду, тоже попробую поэкспериментировать...
Последний раз редактировалось X-BOND 29.04.2004 (Чт) 11:36, всего редактировалось 1 раз.

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 26.04.2004 (Пн) 18:58

Код: Выделить всё
'КОД МОДУЛЯ

Declare Function Shell_NotifyIconA Lib "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Integer
Public Const NIM_ADD = 0
Public Const NIM_MODIFY = 1
Public Const NIM_DELETE = 2
Public Const NIF_MESSAGE = 1
Public Const NIF_ICON = 2
Public Const NIF_TIP = 4
Type NOTIFYICONDATA
cbSize As Long
hWnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type

Public Function SetTrayIcon(Mode As Long, hWnd As Long, Icon As Long, tip As String) As Long
Dim nidTemp As NOTIFYICONDATA
nidTemp.cbSize = Len(nidTemp)
nidTemp.hWnd = hWnd
nidTemp.uID = 0&
nidTemp.uFlags = NIF_ICON Or NIF_TIP
nidTemp.uCallbackMessage = 0&
nidTemp.hIcon = Icon
nidTemp.szTip = tip & Chr$(0)
SetTrayIcon = Shell_NotifyIconA(Mode, nidTemp)
End Function

'КОД ФОРМЫ

'Затем уже в событиях формы вы можете пользоваться вышеприведеными API-функциями.
'Запустите программу. Иконка появится в трее. Наведите на нее курсор, и вы увидите
'надпись "Проверка", теперь кликните в любом месте формы и снова наведите на иконку...

Private Sub Form_Click()
SetTrayIcon NIM_MODIFY, Me.hWnd, Me.Icon, "Работает? Работает!"
End Sub
Private Sub Form_Load()
SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "Проверка"
End Sub
Private Sub Form_Unload(Cancel As Integer)
SetTrayIcon NIM_DELETE, Me.hWnd, 0&, ""
End Sub

Только таймер нужен и иконки......
Наверно так....
Или нет :?

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 26.04.2004 (Пн) 19:22

Z-zzz Фишка не в том :wink:

X-BOND Спокойно, нарисовать у меня получилось.
Счас все красиво оформлю и выложу 8)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 26.04.2004 (Пн) 19:29

FAKK2 писал(а):Z-zzz Фишка не в том :wink:


Но вроде так тоже реально :) , хотя где-то видел такой примерчик, правда чето он потерялся :lol:
Короче говоря ждем :D :D :D

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 29.04.2004 (Чт) 11:23

Короче, у меня вся загвоздка в создании самой иконки с помощью CreateIcon. Там надо передать картинку и маску в виде массива, но как, незнаю.
Предполагаю, что пригодятся еще такие функции:
CreateDIBSection
GetBitmapBits
Буду разбираться по-тихоньку...

Какие еще есть мысли?

P.S.
FAKK2, ты где пропал?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 11

    TopList