Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по WinAPI Tray, Не появляется иконка 
V
    Опции темы
XYLIGAN
Дата 7.1.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.12.2006

Репутация: нет
Всего: нет



Куда помещать определение и создание иконки трея, если главное окно загружается как диалог из ресурсов (то есть не используется CreateWindow и не происходит события WM_CREATE).

Пробовал засунуть в WM_INITDIALOG. Все бы хорошо, НО при завершении работы процесса Explorer.exe и при его запуске иконка не появляется, т.е.
1. иконка в трее есть
2. вызываем Диспетчер задач -> Завершить процесс Explorer.exe
3. там же Файл\Новая задача (Выполнить...) Explorer.exe
4. в трее иконка моей проги не появляется.
Как это решить? Вот код:

Код

NOTIFYICONDATA nid;
HICON hIcon;

INT_PTR APIENTRY MainProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{ //Создаём окно расписанное в Res.rc
  int ret = DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(ID_MAINDIALOG),NULL,(DLGPROC)MainProc) ;
  return ret;
}
//---------------------------------------------------------------------------
INT_PTR APIENTRY MainProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch (msg){
    case WM_INITDIALOG:
            hIcon = LoadIcon(GetModuleHandle(NULL), "MYICON");
            nid.cbSize = sizeof(nid);
            nid.hWnd = hwnd;            
            nid.hIcon = hIcon;
            lstrcpyn(nid.szTip, "Пример трея", sizeof(nid.szTip)/sizeof(nid.szTip[0]));
            nid.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE;
            Shell_NotifyIcon(NIM_ADD, &nid);
            break ;
    case WM_CLOSE:
            Shell_NotifyIcon(NIM_DELETE, &nid);
            EndDialog(hwnd, 0);
            break;
  }
  return FALSE ;
}


PM MAIL   Вверх
Aleksandor
Дата 8.1.2007, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Практик
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 22.11.2005
Где: россия, зеленогра д

Репутация: 10
Всего: 12



попробуй так
Код

case WM_INITDIALOG:
UINT s_uTaskbarRestart = RegisterWindowMessage("TaskbarCreated");
//.........
break;



default:  // default message processing
if(msg == s_uTaskbarRestart)  AddTaskbarIcon(hTrayIcon);
}



--------------------
Call out Gouranga be happy!!!
Gouranga Gouranga Gouranga ....
That which brings the highest happiness!!
PM MAIL   Вверх
XYLIGAN
Дата 9.1.2007, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.12.2006

Репутация: нет
Всего: нет



Попробовал - все работает. Спасибо. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0528 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.