Страница: 1 |
Страница: 1 |
Вопрос: Создание систрея
Добавлено: 22.01.05 23:48
Автор вопроса: Лёха | Web-сайт:
Как создать систрей как у винды с иконками
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #1
Добавлено: 23.01.05 00:57
Написать библу с функцией, которая заменила бы ShellNotifyIcon, положить в системную папку, и заставить все приложения, которые суют свои иконки в трей, вызывать твою ф-цию, а не виндовую ShellNotifyIcon.
И тогда у тебя будет собственный трей
Нарисовать ф-цию не сложно, вот только надо будет всем разработчикам программ разослать уведомление, что ShellNotifyIcon отменяется, и отныне будете юзать мою ф-цию...
Номер ответа: 2
Автор ответа:
Лёха
Вопросов: 18
Ответов: 34
Web-сайт:
Профиль | | #2
Добавлено: 23.01.05 01:14
А как-же ето делает Talisman(альтернативная графическая оболочка под винду)
Номер ответа: 3
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #3
Добавлено: 23.01.05 01:19
Почему бы не перехватывать ?
Номер ответа: 4
Автор ответа:
Лёха
Вопросов: 18
Ответов: 34
Web-сайт:
Профиль | | #4
Добавлено: 23.01.05 01:28
А КАК ???
Номер ответа: 5
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #5
Добавлено: 23.01.05 02:01
Следить, когда программы вызывают Shell_NotifyIcon (ставить хук, что-ли) и пытаться считать данные из структуры SHELLNOTIFYICON, указатель на которую как раз и передаётся в эту ф-цию. И в этой структуре все расписано: какая иконка (её хэндл), какой тултип, что с иконкой делается (добавляется, удаляется, модифицируется) и рисовать (удалять\изменять) эту иконку в своём трее, и тултип тоже.
Правда это довольно геморойное дело - перехват вызовов api.
Технику перехвата спрашивай у sne, он делал такое.
Ну и плюс твой трей также, как и виндовый, должен посылать сообщения приложениям, добавившим икону в трей, о тех или иных мышиных событиях, происходящих на территории трея, чтобы они могли реагировать на действия юзера.
Номер ответа: 6
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #6
Добавлено: 23.01.05 12:54
см. примеры на этом сайте, есть 2 примера...
Номер ответа: 7
Автор ответа:
Лёха
Вопросов: 18
Ответов: 34
Web-сайт:
Профиль | | #7
Добавлено: 24.01.05 00:01
Я не нашел
Номер ответа: 8
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #8
Добавлено: 24.01.05 01:31
VBPhantom кажись и еще одно - перехват своего же MessageBox'a...