Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > NIF_SHOWTIP


Автор: Alexoid 19.3.2012, 15:38
Здраствуйте, программисты!!! Немогу в инете найти казалось бы простую штуку
Создаю System Tray:
Код


    nf.hWnd = m_hWnd;
    nf.uID = NULL;
    nf.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE | NIF_SHOWTIP;
    nf.uCallbackMessage = WM_ShellNote;
    HICON hIcon;
    _tcscpy_s(nf.szTip, sizeof(nf.szTip)/sizeof(nf.szTip[0]),_T("Прога"));
    hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    nf.hIcon = hIcon;
    Shell_NotifyIcon(NIM_ADD,&nf);



мне нужно что из трея вылазило стандартое  уведомление- "типо программа все сделала неволнуютесь".
я так понял чтоб мой систем трей мог примать от моей проги сообщение я добавил флаг NIF_SHOWTIP, но как это сделать я нигде ни нашел, все долбанные компонеты обсуждают....

Автор: Dem_max 19.3.2012, 16:56
Код

   InitCommonControls();


   WM_ICON_MES = RegisterWindowMessage(_T("TrayMessage"));
   nt.cbSize = sizeof(NOTIFYICONDATA);
   nt.hWnd = hWndMain;
   nt.uID = 1;
   nt.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP | NIF_INFO;
   nt.uCallbackMessage = WM_ICON_MES;
   nt.uTimeout = 5000;
   nt.uVersion = NOTIFYICON_VERSION;
   nt.hIcon = hIcon
   lstrcpy(nt.szTip, _T("MyProg 1.0"));
   Shell_NotifyIcon(NIM_ADD, &nt);


Показываем
Код

         lstrcpy(nt.szInfo, _T("Сообщение !!!!"));
         nt.dwInfoFlags = NIIF_ERROR;
         lstrcpy(nt.szInfoTitle, _T("MyProg"));
         Shell_NotifyIcon(NIM_MODIFY, &nt);


Скрываем
Код

      nt.dwInfoFlags = NIIF_NONE;
      lstrcpy(nt.szInfo, _T(""));
      lstrcpy(nt.szInfoTitle, _T(""));
      Shell_NotifyIcon(NIM_MODIFY, &nt);

Автор: Alexoid 20.3.2012, 13:49
Спасибо мужжик smile . Авка нибось из немецкого ХОУМ ВИДЕО))))) smile 

А то я тему обозвал так сгорячя, переживал что никто и разбираться не будет

Автор: Alexoid 2.4.2012, 09:18
А аможно продолжить тему.
Подсказка всплывает в Windows Vista и 7. а для ХР`ихи есть код который заставляеть Tray icon гнерировать подсказку.
Вот MS Visual C++ 2010 это прекрастно делает, а моя прога только в семёрке.

Автор: Dem_max 2.4.2012, 10:11
не понятно smile 

Автор: Alexoid 3.4.2012, 13:17
Да, действительно немног смутно выразился.
В общем System Tray моей программы показывает ссобщения, которые моя программа гененрирует спомощью этого кода:
Код

         lstrcpy(nt.szInfo, _T("Сообщение !!!!"));
         nt.dwInfoFlags = NIIF_ERROR;
         lstrcpy(nt.szInfoTitle, _T("MyProg"));
         Shell_NotifyIcon(NIM_MODIFY, &nt);

(сообщение) выводиться только в Windows 7 or Vista, а ХР сообщение не выводит, я тут в интернете поискал выход из этой ситуации, везде говорят типа стандартний фунциональности у XP НЕТ.

Автор: Dem_max 3.4.2012, 16:08
Приведенный мной код как раз таки и работал на XP, Win 7 тогда еще не было. Попробуй на другом компе.

Автор: Alexoid 4.4.2012, 09:02
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)