void TrayIcon::ChangeIcon(HICON hIcon) { tnd.hIcon = hIcon; if(IsInstalled) { Shell_NotifyIcon(NIM_MODIFY, &tnd); } else { InstallIcon(); } }
void MainDialog::CreateTrayIcon() { CString sText = util::getMultilingual()->getStringById(_T("STRID_GLOBAL_CAPTION_NAME")); #ifdef _DEBUG sText += _T("(Debug)"); #endif InstallIcon(sText, m_hIcons[ICON_TRAY_LOGO], IDR_MAINFRAME, FALSE); }
LRESULT CMainFrame::OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { hThread = 0; // create command bar window HWND hWndCmdBar = m_CmdBar.Create(m_hWnd, rcDefault, NULL, ATL_SIMPLE_CMDBAR_PANE_STYLE); // attach menu m_CmdBar.AttachMenu(GetMenu()); // load command bar images m_CmdBar.LoadImages(IDR_MAINFRAME); // remove old menu SetMenu(NULL); HICON hIconSmall = (HICON)::LoadImage(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDR_MAINFRAME), IMAGE_ICON, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR); InstallIcon(_T("Tooltip text"), hIconSmall, IDR_TRAYPOPUP); SetDefaultItem(ID_SHOW); HWND hWndToolBar = CreateSimpleToolBarCtrl(m_hWnd, IDR_MAINFRAME, FALSE, ATL_SIMPLE_TOOLBAR_PANE_STYLE); CreateSimpleReBar(ATL_SIMPLE_REBAR_NOBORDER_STYLE); AddSimpleReBarBand(hWndCmdBar); AddSimpleReBarBand(hWndToolBar, NULL, TRUE); CreateSimpleStatusBar(); WTL::CRect r(0, 0, 800, 600); m_hWndClient = m_view.Create(m_hWnd, r, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | LBS_NOINTEGRALHEIGHT | LBS_NOTIFY | LBS_WANTKEYBOARDINPUT, WS_EX_CLIENTEDGE); m_view.SetFont(AtlGetDefaultGuiFont()); UIAddToolBar(hWndToolBar); UISetCheck(ID_VIEW_TOOLBAR, 1); UISetCheck(ID_VIEW_STATUS_BAR, 1); // register object for message filtering and idle updates CMessageLoop* pLoop = _Module.GetMessageLoop(); ATLASSERT(pLoop != NULL); pLoop->AddMessageFilter(this); pLoop->AddIdleHandler(this); return 0; }
LRESULT CFloatingWindow::OnCreate(LPCREATESTRUCT lpCreateStruct) { /*int w = ::GetSystemMetrics(SM_CXSMICON); if ( w > 32 ) { w = 48; } else if ( w > 16 ) { w = 32; } int h = w;*/ m_hIconSmall = GuiTools::LoadSmallIcon(IDR_MAINFRAME); SetIcon(m_hIconSmall, FALSE); RegisterHotkeys(); InstallIcon(APPNAME, m_hIconSmall, /*TrayMenu*/ 0); NOTIFYICONDATA nid; ZeroMemory(&nid, sizeof(nid)); nid.cbSize = NOTIFYICONDATA_V2_SIZE; nid.hWnd = m_hWnd; nid.uVersion = NOTIFYICON_VERSION; Shell_NotifyIcon(NIM_SETVERSION, &nid); return 0; }
LRESULT CMainDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { DlgResize_Init(); // center the dialog on the screen CenterWindow(); sAppTooltip="MtConnectDboard"; nIcon=0; // set icons HICON hIcon = (HICON)::LoadImage(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDR_MAINFRAME), IMAGE_ICON, ::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON), LR_DEFAULTCOLOR); SetIcon(hIcon, TRUE); HICON hIconSmall = (HICON)::LoadImage(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDR_MAINFRAME), IMAGE_ICON, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR); SetIcon(hIconSmall, FALSE); // register object for message filtering and idle updates //CMessageLoop* pLoop = _Module.GetMessageLoop(); CMessageLoop* pLoop = _thread->GetMessageLoop(); ATLASSERT(pLoop != NULL); pLoop->AddMessageFilter(this); pLoop->AddIdleHandler(this); UIAddChildWindowContainer(m_hWnd); // Remove Max/Min buttons - if using TrayIcon DWORD style = ::GetWindowLong(this->m_hWnd, GWL_STYLE); style &= ~(WS_MAXIMIZEBOX); // WS_MINIMIZEBOX NOT WS_THICKFRAME ::SetWindowLong(this->m_hWnd, GWL_STYLE, style); // Install tray icon hSmileyIcon = LoadIcon(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDR_MAINFRAME)); hIdleIcon = LoadIcon(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDI_IDLEICON)); hStopIcon = LoadIcon(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDI_STOPICON)); hClearIcon = LoadIcon(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDI_CLEARICON)); InstallIcon(sAppTooltip, hSmileyIcon, IDR_MENU1); CAxWindow wndIE = GetDlgItem(IDC_EXPLORER1); HRESULT hr; hr = wndIE.QueryControl ( &m_spWebBrowser ); if ( m_spWebBrowser ) { CComVariant v; // empty variant m_spWebBrowser->Navigate ( CComBSTR("about:blank"), &v, &v, &v, &v ); } //Handle NavigateComplete2 event from the browser, get the document element, call DispEventAdvise(pDocument). onclick event bubbles, so you can handle it on the document and get clicks from all contained elements. //DispEventAdvise(m_spWebBrowser); //Then you need to register your interface to be used proccess wide: hr = pGIT->RegisterInterfaceInGlobal( (IUnknown*)(IWebBrowser2*)m_spWebBrowser, IID_IWebBrowser2, &dwWebBrowserCookie); //std::string html = MTConnectStreamsParser().CreateHtmlDocument(); //CHtmlTableSnapshots().SetDocumentText(m_spWebBrowser,html); // Icon mapping std::vector<HICON> icons(2); icons[0]=hSmileyIcon; icons[1]=hClearIcon; StateIconMap["EXECUTING"] = icons; // flashing green icons[0]=hSmileyIcon; icons[1]=hSmileyIcon; StateIconMap["IDLE"] = icons; // idle auto icons[0]=hStopIcon; icons[1]=hStopIcon; StateIconMap["STOPPED"] = icons; // stopped icons[0]=hStopIcon; icons[1]=hClearIcon; StateIconMap["FAULT"] = icons; // stopped fault this->SetTimer(1, 250); dlgMainThead = ::GetCurrentThread(); return TRUE; }
void TrayIcon::RefreshIcon() { RemoveIcon(); InstallIcon(); }
LRESULT CFloatingWindow::OnTaskbarCreated(UINT uMsg, WPARAM wParam, LPARAM lParam) { InstallIcon(APPNAME, m_hIconSmall, 0); return 0; }