Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > отображение иконки на системной панели


Автор: GGoga 6.5.2007, 15:23
Здравствуйте уважаемые господа программисты!!! Помогите начинающему программисту разобраться с вопросом. Как можно написать на С++ программу в среде Visual C++, чтобы она запускалась при старте операционной системы, и работала в фоне, отображая иконку на системной панели (system tray)?

Заранее ОГРОМНОЕ СПАСИБО!!!

Автор: srd 6.5.2007, 15:25
Искать на этом форуме по ключевому слову Shell_NotifyIcon

Автор: Прохожий 7.5.2007, 07:22
Вот таким образом можно как я в классе рамки
Код

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
              .........
              .........
              .........


              Тут значит всякий код созданный мастером


               ..........


    // TODO: Remove this if you don't want tool tips
    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    DockControlBar(&m_wndToolBar);

    HICON hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
                NOTIFYICONDATA tnd;

    // Создаём иконку в трее
    tnd.hWnd = m_hWnd;
    tnd.uID = IDR_MAINFRAME;
    tnd.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
    tnd.uCallbackMessage = WM_MYICONNOTIFY;
    strcpy(tnd.szTip, "Иконка в трее");
    tnd.hIcon = AfxGetApp()->LoadIcon(m_iTypeIcon);
    tnd.cbSize = sizeof (NOTIFYICONDATA);
    Shell_NotifyIcon(NIM_ADD, &tnd);
                ...........


Иконка будет добавлена в систрей  smile  Там правда ещё есть моменты (Обрабатывать клик по иконке, перезапуск Эксплорера, Удалить при закрытии приложения) но этого во всяком случае будет достаточно.

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