Форум: "Потрепаться";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизFAQ: Добавление иконки в SysTray Найти похожие ветки
← →
Piter © (2004-04-03 18:13) [40]Панов, а это тобой написанный пример: http://home.ural.ru/~panov/icontray.html ?
Для FAQ"а пример, имхо, слишком сложен. И совершенно не понимаю - зачем WindowProc переназначать?!
Если хочешь все расписать (анимирование иконки и т.д.), то пиши лучше статью, nikkie там советовал о чем можно рассказать
← →
Piter © (2004-04-03 18:13) [40]Панов, а это тобой написанный пример: http://home.ural.ru/~panov/icontray.html ?
Для FAQ"а пример, имхо, слишком сложен. И совершенно не понимаю - зачем WindowProc переназначать?!
Если хочешь все расписать (анимирование иконки и т.д.), то пиши лучше статью, nikkie там советовал о чем можно рассказать
← →
panov © (2004-04-04 01:56) [41]>Piter © (03.04.04 18:13) [40]
Панов, а это тобой написанный пример: http://home.ural.ru/~panov/icontray.html ?
Ну не знаю... Если есть более простой вариант готовой программы - предлагай.
Но он должен быть полностью функционален.
Если хочешь с копирайтами, то сделаем копирайт.-)
С этим никаких проблем.
Статья твоя обязательно будет с копирайтом.
Да и другие ответы, если автор будет известен, будут отмечены копирайтами.
← →
panov © (2004-04-04 01:56) [41]>Piter © (03.04.04 18:13) [40]
Панов, а это тобой написанный пример: http://home.ural.ru/~panov/icontray.html ?
Ну не знаю... Если есть более простой вариант готовой программы - предлагай.
Но он должен быть полностью функционален.
Если хочешь с копирайтами, то сделаем копирайт.-)
С этим никаких проблем.
Статья твоя обязательно будет с копирайтом.
Да и другие ответы, если автор будет известен, будут отмечены копирайтами.
← →
Rouse_ © (2004-04-04 02:14) [42]Постараемся сделать с копирайтами - по крайней мере та часть, которая идет от меня будет точно...
Вот кстати вопрос для всех (и для Александра тоже, как составляющего FAQ)
Стоит ли вносить некоторые ответы из Озерского (Кулибы) в FAQ.
Сегодня консультировался с Анатолием Подгорецким, точного мнения мы не выработали...
А также, мое ИМХО, стоит попросить автора DelphiWorld на использование его статей (собранных им статей) для использование в FAQ (части их)
← →
Rouse_ © (2004-04-04 02:14) [42]Постараемся сделать с копирайтами - по крайней мере та часть, которая идет от меня будет точно...
Вот кстати вопрос для всех (и для Александра тоже, как составляющего FAQ)
Стоит ли вносить некоторые ответы из Озерского (Кулибы) в FAQ.
Сегодня консультировался с Анатолием Подгорецким, точного мнения мы не выработали...
А также, мое ИМХО, стоит попросить автора DelphiWorld на использование его статей (собранных им статей) для использование в FAQ (части их)
← →
Piter © (2004-04-04 12:23) [43]panov (04.04.04 01:56) [41]
Если есть более простой вариант готовой программы - предлагай
1) я уже предложил, есть в письме.
2) зачем в примере перекрывать оконную процедуру? То есть, понятно для чего - чтобы WM_SYSCOMMAND обрабатывать. Но нужно ли это в примере? Человек иконку не может добавить, а тут какую-то оконную процедуру перекрывают...
3)case aAction of
NIM_ADD: Shell_NotifyIcon(NIM_ADD, @nid); //Добавление иконки
NIM_DELETE: Shell_NotifyIcon(NIM_DELETE, @nid); //Удаление иконки
NIM_MODIFY: Shell_NotifyIcon(NIM_MODIFY, @nid); //Модификация иконки
end;
А нельзя просто написать вместо всего этого кодаShell_NotifyIcon(aAction, @nid);
?
И пример вообще сложный. Там используются, имхо, ненужные навороты, типа RegisterWindowMessage с формированием уникальной строки и тому подобное. Все на множество процедур разбито. Оно, конечно, правильно, но нагромождает элементарный код. Нужно мне кажется выделить сам ответ на вопрос, а уж всякие навороты - это отдельно, чтобы не мешали восприятию
← →
Piter © (2004-04-04 12:23) [43]panov (04.04.04 01:56) [41]
Если есть более простой вариант готовой программы - предлагай
1) я уже предложил, есть в письме.
2) зачем в примере перекрывать оконную процедуру? То есть, понятно для чего - чтобы WM_SYSCOMMAND обрабатывать. Но нужно ли это в примере? Человек иконку не может добавить, а тут какую-то оконную процедуру перекрывают...
3)case aAction of
NIM_ADD: Shell_NotifyIcon(NIM_ADD, @nid); //Добавление иконки
NIM_DELETE: Shell_NotifyIcon(NIM_DELETE, @nid); //Удаление иконки
NIM_MODIFY: Shell_NotifyIcon(NIM_MODIFY, @nid); //Модификация иконки
end;
А нельзя просто написать вместо всего этого кодаShell_NotifyIcon(aAction, @nid);
?
И пример вообще сложный. Там используются, имхо, ненужные навороты, типа RegisterWindowMessage с формированием уникальной строки и тому подобное. Все на множество процедур разбито. Оно, конечно, правильно, но нагромождает элементарный код. Нужно мне кажется выделить сам ответ на вопрос, а уж всякие навороты - это отдельно, чтобы не мешали восприятию
← →
nikkie © (2004-04-04 15:32) [44]>зачем в примере перекрывать оконную процедуру? То есть, понятно для чего - чтобы WM_SYSCOMMAND обрабатывать.
странный вывод. оконная процедура перекрывается для обработки сообщений, значение которых не константа, а получено с помощью RegisterWindowMessage. WM_SYSCOMMAND проще обработать с помощью процедуры, объявленной с ключевым словом message.
кстати, только сейчас заметил - во всех приведенных примерах отсутствует обработка сообщения RegisterWindowMessage("TaskbarCreated"), а это полезная вещь.Taskbar Creation Notification
With Microsoft® Internet Explorer 4.0 and later, the shell notifies applications that the taskbar has been created. When the taskbar is created, it registers a message with the "TaskbarCreated" string and then broadcasts this message to all top-level windows. When your taskbar application receives this message, it should assume that any taskbar icons it added have been removed and add them again. This feature generally applies only to services that are already running when the shell begins execution. The following example shows a very simplified method for handling this case.
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam,
LPARAM lParam)
{
static UINT s_uTaskbarRestart;
switch(uMessage)
{
case WM_CREATE:
s_uTaskbarRestart = RegisterWindowMessage(TEXT("TaskbarCreated"));
break;
default:
if(uMessage == s_uTaskbarRestart)
AddTaskbarIcons();
break;
}
return DefWindowProc(hWnd, uMessage, wParam, lParam);
}
(MSDN, статья Handling the Taskbar)
кстати, по поводу терминологии - микрософт пытается бороться со словом "трей"The taskbar notification area is sometimes erroneously called the "tray."
(MSDN, статья Shell_NotifyIcon)
но, наверное, это бесполезно :)
← →
nikkie © (2004-04-04 15:32) [44]>зачем в примере перекрывать оконную процедуру? То есть, понятно для чего - чтобы WM_SYSCOMMAND обрабатывать.
странный вывод. оконная процедура перекрывается для обработки сообщений, значение которых не константа, а получено с помощью RegisterWindowMessage. WM_SYSCOMMAND проще обработать с помощью процедуры, объявленной с ключевым словом message.
кстати, только сейчас заметил - во всех приведенных примерах отсутствует обработка сообщения RegisterWindowMessage("TaskbarCreated"), а это полезная вещь.Taskbar Creation Notification
With Microsoft® Internet Explorer 4.0 and later, the shell notifies applications that the taskbar has been created. When the taskbar is created, it registers a message with the "TaskbarCreated" string and then broadcasts this message to all top-level windows. When your taskbar application receives this message, it should assume that any taskbar icons it added have been removed and add them again. This feature generally applies only to services that are already running when the shell begins execution. The following example shows a very simplified method for handling this case.
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam,
LPARAM lParam)
{
static UINT s_uTaskbarRestart;
switch(uMessage)
{
case WM_CREATE:
s_uTaskbarRestart = RegisterWindowMessage(TEXT("TaskbarCreated"));
break;
default:
if(uMessage == s_uTaskbarRestart)
AddTaskbarIcons();
break;
}
return DefWindowProc(hWnd, uMessage, wParam, lParam);
}
(MSDN, статья Handling the Taskbar)
кстати, по поводу терминологии - микрософт пытается бороться со словом "трей"The taskbar notification area is sometimes erroneously called the "tray."
(MSDN, статья Shell_NotifyIcon)
но, наверное, это бесполезно :)
← →
Игорь Шевченко © (2004-04-04 17:41) [45]nikkie © (04.04.04 15:32)
Вопрос: "Как засунуть иконку в область уведомлений таскбара" как-то не звучит...
← →
Игорь Шевченко © (2004-04-04 17:41) [45]nikkie © (04.04.04 15:32)
Вопрос: "Как засунуть иконку в область уведомлений таскбара" как-то не звучит...
← →
Piter © (2004-04-04 17:52) [46]nikkie (04.04.04 15:32) [44]
. оконная процедура перекрывается для обработки сообщений, значение которых не константа, а получено с помощью RegisterWindowMessage
ага, стормозил. Но по прежнему считаю, что в FAQ это лишний наворот. Вот в статье можно упомянуть.
← →
Piter © (2004-04-04 17:52) [46]nikkie (04.04.04 15:32) [44]
. оконная процедура перекрывается для обработки сообщений, значение которых не константа, а получено с помощью RegisterWindowMessage
ага, стормозил. Но по прежнему считаю, что в FAQ это лишний наворот. Вот в статье можно упомянуть.
← →
nikkie © (2004-04-04 19:07) [47]>Игорь Шевченко
я и говорю - бороться бесполезно :)
тем более, когда в самом MSDN встречается
"HOWTO: Manipulate Icons in the System Tray with Visual Basic"
← →
nikkie © (2004-04-04 19:07) [47]>Игорь Шевченко
я и говорю - бороться бесполезно :)
тем более, когда в самом MSDN встречается
"HOWTO: Manipulate Icons in the System Tray with Visual Basic"
← →
panov © (2004-04-09 13:50) [48]
← →
panov © (2004-04-09 13:50) [48]
← →
panov © (2004-04-18 16:09) [49]
← →
panov © (2004-04-18 16:09) [49]
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.65 MB
Время: 0.051 c