Exemplo n.º 1
0
BOOL CEpgTimerTaskDlg::ChgTipsTaskBar(HWND hWnd, UINT uiID, HICON hIcon, CString strTips)
{ 
	BOOL bRet;
	NOTIFYICONDATA stData;
	ZeroMemory(&stData, sizeof(NOTIFYICONDATA));

	stData.cbSize = sizeof(NOTIFYICONDATA); 
	stData.hWnd = hWnd; 
	stData.uID = uiID; 
	stData.hIcon = hIcon; 
	stData.uFlags = NIF_ICON | NIF_TIP; 

	if( strTips.IsEmpty() == false ){
		wcsncpy_s(stData.szTip, sizeof(stData.szTip), strTips.GetBuffer(0), sizeof(stData.szTip) );
	}
 
	bRet = Shell_NotifyIcon(NIM_MODIFY, &stData); 
 
	return bRet; 
}
Exemplo n.º 2
0
BOOL CSystemTray::HideIcon()
{
    if (!m_bEnabled || m_bRemoved || m_bHidden)
        return TRUE;

#ifdef SYSTEMTRAY_USEW2K
    if (m_bWin2K)
    {
        m_tnd.uFlags = NIF_STATE;
        m_tnd.dwState = NIS_HIDDEN;
        m_tnd.dwStateMask = NIS_HIDDEN;

        m_bHidden = Shell_NotifyIcon( NIM_MODIFY, &m_tnd);
    }
    else
#endif
        RemoveIcon();

    return (m_bHidden == TRUE);
}
Exemplo n.º 3
0
BOOL CTrayDialog::TrayUpdate()
{
    BOOL bSuccess = FALSE;
    if (m_bTrayIconVisible)
    {
        bSuccess = Shell_NotifyIcon(NIM_MODIFY, &m_nidIconData);
        if (!bSuccess) {
			//ASSERT(0);
            return FALSE; // don't delete 'm_hPrevIconDelete' because it's still attached to the tray
        }
    }
   
    if (m_hPrevIconDelete != NULL)
    {
        VERIFY( ::DestroyIcon(m_hPrevIconDelete) );
        m_hPrevIconDelete = NULL;
    }        
   
	return bSuccess;
} 
Exemplo n.º 4
0
//-------------------------------------------------
void ModifyStatusIcon()
{
    NOTIFYICONDATA tnid; 

    tnid.cbSize = sizeof(NOTIFYICONDATA);
    tnid.hWnd = pShMem->hMainDlg;
	tnid.uID = ID_VIETKEY_ICON;
	if (pShMem->vietKey) {
		tnid.hIcon = pShMem->hVietIcon;
		lstrcpy(tnid.szTip,_TEXT("Click to turn off Vietnamese mode"));

	} else {
		tnid.hIcon = pShMem->hEnIcon;
		lstrcpy(tnid.szTip,_TEXT("Click to turn on Vietnamese mode"));
	}
    tnid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; 
    tnid.uCallbackMessage = pShMem->iconMsgId;
	Shell_NotifyIcon(pShMem->iconShown?NIM_MODIFY:NIM_ADD, &tnid);
	pShMem->iconShown = 1;
} 
Exemplo n.º 5
0
int CH3CDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CDialog::OnCreate(lpCreateStruct) == -1)
		return -1;

	// TODO:  在此添加您专用的创建代码

	m_threadInfo.hWnd=this->m_hWnd;
 
	tnd.cbSize=NOTIFYICONDATA_V2_SIZE; 
	tnd.hWnd=this->m_hWnd; 
	tnd.uID=IDR_MAINFRAME; 
	tnd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP; 
	tnd.uCallbackMessage=WM_TRAY;
	tnd.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_DISCON)); 
	wcsncpy_s(tnd.szTip, _countof(tnd.szTip), _T("H3C 802.1x认证"), 128);
	Shell_NotifyIcon(NIM_ADD,&tnd);

	return 0;
}
Exemplo n.º 6
0
BOOL CEdenDlg::ChgTipsTaskBar(HWND wnd, UINT id, HICON icon, CString tips)
{ 
	BOOL ret=TRUE;
	NOTIFYICONDATA data;
	ZeroMemory(&data, sizeof(NOTIFYICONDATA));

	data.cbSize = sizeof(NOTIFYICONDATA); 
	data.hWnd = wnd; 
	data.uID = id; 
	data.hIcon = icon; 
	data.uFlags = NIF_ICON | NIF_TIP; 

	if( tips.IsEmpty() == false ){
		wcsncpy_s(data.szTip, sizeof(data.szTip), tips.GetBuffer(0), sizeof(data.szTip) );
	}
 
	ret = Shell_NotifyIcon(NIM_MODIFY, &data); 
 
	return ret; 
}
Exemplo n.º 7
0
VOID toggleCursorClipping() 
{
	if (isClippingEnabled) 
	{
		// Freeing the cursor
		ClipCursor(NULL);

		// Removing the systray tooltip
		notificationIconData.szTip[0] = '\0';

		// Changing systray icon
		notificationIconData.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_INACTIVE));

	}
	else
	{
		HWND hWnd = GetForegroundWindow();

		if (hWnd != NULL) {
			// Clipping cursor
			GetWindowText(hWnd, clippedWindowName, MAX_CLIPPED_WINDOW_NAME_SIZE);
			clipCursorToWindow(hWnd);
			
			// Changing the systray tooltip
			_snwprintf_s(
				notificationIconData.szTip,
				sizeof(notificationIconData.szTip),
				L"Cursor clipped to: %s",
				clippedWindowName);

			// Changing systray icon
			notificationIconData.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ACTIVE));

		}

	}


	Shell_NotifyIcon(NIM_MODIFY, &notificationIconData);
	isClippingEnabled = !isClippingEnabled;
}
Exemplo n.º 8
0
/*
    Can be called multiple times 
 */
static int openMonitorIcon()
{
    NOTIFYICONDATA  data;
    HICON           iconHandle;
    HBITMAP         go, stop;
    static int      doOnce = 0;
    int             rc;

    if (app->monitorMenu == NULL) {
        app->monitorMenu = LoadMenu(app->appInst, "monitorMenu");
        if (! app->monitorMenu) {
            mprError("Can't locate monitorMenu");
            return MPR_ERR_CANT_OPEN;
        }
    }
    if (app->subMenu == NULL) {
        app->subMenu = GetSubMenu(app->monitorMenu, 0);
        go = LoadBitmap(app->appInst, MAKEINTRESOURCE(IDB_GO));
        rc = GetLastError();
        stop = LoadBitmap(app->appInst, MAKEINTRESOURCE(IDB_STOP));
        SetMenuItemBitmaps(app->subMenu, MA_MENU_STATUS, MF_BYCOMMAND, stop, go);
    }
    iconHandle = (HICON) LoadImage(app->appInst, APPWEB_ICON, IMAGE_ICON, 0, 0, LR_LOADFROMFILE | LR_DEFAULTSIZE);
    if (iconHandle == 0) {
        mprError("Can't load icon %s", APPWEB_ICON);
        return MPR_ERR_CANT_INITIALIZE;
    }
    data.uID = APPWEB_MONITOR_ID;
    data.hWnd = app->appHwnd;
    data.hIcon = iconHandle;
    data.cbSize = sizeof(NOTIFYICONDATA);
    data.uCallbackMessage = APPWEB_MONITOR_MESSAGE;
    data.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE;

    scopy(data.szTip, sizeof(data.szTip), mprGetAppTitle());
    Shell_NotifyIcon(NIM_ADD, &data);
    if (iconHandle) {
        DestroyIcon(iconHandle);
    }
    return 0;
}
Exemplo n.º 9
0
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0("Failed to create toolbar\n");
		return -1;      // fail to create
	}

	if (!m_wndStatusBar.Create(this) ||
		!m_wndStatusBar.SetIndicators(indicators,
		  sizeof(indicators)/sizeof(UINT)))
	{
		TRACE0("Failed to create status bar\n");
		return -1;      // fail to create
	}

	// TODO: Delete these three lines if you don't want the toolbar to
	//  be dockable
	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);

	NOTIFYICONDATA &tnd = m_notifyData;
	tnd.cbSize=sizeof(NOTIFYICONDATA);
	tnd.hWnd=this->m_hWnd;
	tnd.uID=IDR_MAINFRAME;
	tnd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;
	tnd.uCallbackMessage=WM_MYSYSTRAYNOTIFY;
	tnd.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));
	strcpy(tnd.szTip,"菩提字幕");//图标提示为"测试程序"
	BOOL rt = Shell_NotifyIcon(NIM_ADD,&tnd);//向任务栏添加图标
	if(!rt)
		TRACE0("Add systray icon failed!");

	return 0;
}
Exemplo n.º 10
0
static int openTrayIcon()
{
	NOTIFYICONDATA	data;
	HICON			iconHandle;
	static int		doOnce = 0;


	if (trayMenu == NULL) {
		trayMenu = LoadMenu(appInst, "trayMenu");
		if (! trayMenu) {
			mprError(MPR_L, MPR_LOG, "Can't locate trayMenu");
			return MPR_ERR_CANT_OPEN;
		}
	}
	if (subMenu == NULL) {
		subMenu = GetSubMenu(trayMenu, 0);
	}

	iconHandle = (HICON) LoadImage(appInst, APPWEB_ICON, IMAGE_ICON, 0, 0,
		LR_LOADFROMFILE | LR_DEFAULTSIZE);
	if (iconHandle == 0) {
		mprError(MPR_L, MPR_LOG, "Can't load icon %s", APPWEB_ICON);
		return MPR_ERR_CANT_INITIALIZE;
	}

	data.uID = APPWEB_TRAY_ID;
	data.hWnd = appHwnd;
	data.hIcon = iconHandle;
	data.cbSize = sizeof(NOTIFYICONDATA);
	data.uCallbackMessage = APPWEB_TRAY_MESSAGE;
	data.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE;

	mprStrcpy(data.szTip, sizeof(data.szTip), mp->getAppTitle());

	Shell_NotifyIcon(NIM_ADD, &data);

	if (iconHandle) {
		DestroyIcon(iconHandle);
	}
	return 0;
}
Exemplo n.º 11
0
NS_IMETHODIMP
otSystrayWin::Hide()
{
  nsresult rv = otSystrayBase::Hide();

  if (NS_SUCCEEDED(rv) && mNid) {
    NOTIFYICONDATA nid;

    nid.cbSize = sizeof(nid);
    nid.hWnd = GetHWND();
    nid.uFlags = 0;
    nid.uID = mNid;

    Shell_NotifyIcon(NIM_DELETE, &nid);

    systrays[mNid-100] = 0;
    mNid = 0;
  }

  return rv;
}
Exemplo n.º 12
0
BOOL CEpgDataCap_BonDlg::AddTaskBar(HWND wnd, UINT msg, UINT id, HICON icon, CString tips)
{ 
	BOOL ret=TRUE;
	NOTIFYICONDATA data;
	ZeroMemory(&data, sizeof(NOTIFYICONDATA));

	data.cbSize = sizeof(NOTIFYICONDATA); 
	data.hWnd = wnd; 
	data.uID = id; 
	data.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; 
	data.uCallbackMessage = msg; 
	data.hIcon = icon; 

	if( tips.IsEmpty() == false ){
		wcsncpy_s(data.szTip, sizeof(data.szTip), tips.GetBuffer(0), sizeof(data.szTip) );
	}
 
	ret = Shell_NotifyIcon(NIM_ADD, &data);
  
	return ret; 
}
Exemplo n.º 13
0
BOOL ShowTrayIcon()
{
	NOTIFYICONDATA nid;
	ZeroMemory(&nid, sizeof(NOTIFYICONDATA));
	nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);
	nid.hWnd   = hWnd;
	nid.uID	   = NID_UID;
	nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
	nid.dwInfoFlags=NIIF_INFO;
	nid.uCallbackMessage = WM_TASKBARNOTIFY;	
	nid.hIcon = LoadIcon(hInst, (LPCTSTR)IDI_SMALL);
	lstrcpy(nid.szTip, szTooltip);
    if (lstrlen(szBalloon) > 0)
	{
		nid.uFlags |= NIF_INFO;
		lstrcpy(nid.szInfo, szBalloon);
		lstrcpy(nid.szInfoTitle,szTitle);
	}
	Shell_NotifyIcon(NIM_ADD, &nid);
	return TRUE;
}
Exemplo n.º 14
0
BOOL CTrayNotifyIcon::SetIcon(HICON hIcon)
{
  BOOL ret_val;

  if (!m_bCreated)
    return FALSE;

  m_NotifyIconData.uFlags = NIF_ICON;
  m_NotifyIconData.hIcon = hIcon;

  ret_val = Shell_NotifyIcon(NIM_MODIFY, &m_NotifyIconData);

  if (ret_val == FALSE) {
	  bSetIconFailed = TRUE;
  }
  else {
	  bSetIconFailed = FALSE;
  }

  return ret_val;
}
Exemplo n.º 15
0
//-----------------------------
void channelPopup(const char *title, const char *msg, bool isPopup = true)
{
    String both;

    if (*title == '\0') return;
    both.append(msg);
    both.append(" (");
    both.append(title);
    both.append(")");

    trayIcon.uFlags = NIF_ICON|NIF_TIP;
    strncpy(trayIcon.szTip, both.cstr(),sizeof(trayIcon.szTip)-1);
    trayIcon.szTip[sizeof(trayIcon.szTip)-1]=0;

    if (isPopup) trayIcon.uFlags |= 16;
    trayIcon.uTimeoutOrVersion = 10000;
    strncpy(trayIcon.szInfo,msg,sizeof(trayIcon.szInfo)-1);
    strncpy(trayIcon.szInfoTitle,title,sizeof(trayIcon.szInfoTitle)-1);

    Shell_NotifyIcon(NIM_MODIFY, (NOTIFYICONDATA*)&trayIcon);
}
Exemplo n.º 16
0
static void CreateTrayIcon(bool create)
{
	NOTIFYICONDATA nim;
	DBVARIANT dbVar;
	if (!db_get_ts(NULL,MOD_NAME,"ToolTipText",&dbVar))
	{
		mir_sntprintf(nim.szTip, 64, _T("%s"), dbVar.ptszVal);
		db_free(&dbVar);
	}
	else
		lstrcpy(nim.szTip, _T("Miranda NG"));

	nim.cbSize = sizeof(nim);
	nim.hWnd = g_hListenWindow;
	nim.uID = 100;
	nim.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
	nim.hIcon = Skin_GetIcon("hidemim");
	nim.uCallbackMessage = WM_USER + 24;
	Shell_NotifyIcon(create ? NIM_ADD : NIM_DELETE, &nim);
	g_TrayIcon = create;
}
Exemplo n.º 17
0
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
	if (nType & SIZE_MINIMIZED)
	{
		if (!iconData)
		{
			iconData = new NOTIFYICONDATA;
			iconData->cbSize = NOTIFYICONDATA_V1_SIZE;
			iconData->hWnd = GetSafeHwnd();
			iconData->uID = 0;
			iconData->uFlags = NIF_ICON | NIF_MESSAGE;
			iconData->uCallbackMessage = ID_ICON_CALLBACK;
			iconData->hIcon = (HICON)theApp.LoadIcon(IDR_MAINFRAME);
		}
		Shell_NotifyIcon(NIM_ADD,iconData);
		ShowTaskBarButton(false);
	}
	CFrameWnd::OnSize(nType, cx, cy);
	// TODO: Add your message handler code here
	
}
Exemplo n.º 18
0
void BalloonMgr::clear()
{
    if (_pending.empty())
        return;  // No active balloon!?

    // Clear active balloon
    Balloon &balloon = _pending.front();
    NOTIFYICONDATA nid;
    nid.hWnd = balloon.hwnd;
    nid.cbSize = sizeof(nid);
    nid.uID = IDI_APCUPSD;
    nid.uFlags = NIF_INFO;
    nid.uTimeout = 0;
    nid.szInfoTitle[0] = '\0';
    nid.szInfo[0] = '\0';
    nid.dwInfoFlags = 0;
    Shell_NotifyIcon(NIM_MODIFY, &nid);

    // Remove vector entry for active balloon
    _pending.erase(_pending.begin());
}
Exemplo n.º 19
0
bool
HippoIcon::create(HWND window)            
{
    NOTIFYICONDATA notifyIconData = { 0 };
    HINSTANCE instance = GetModuleHandle(NULL);
   
    window_ = window;
    
    message_ = RegisterWindowMessage(TEXT("HippoNotifyMessage"));

    notifyIconData.cbSize = sizeof(NOTIFYICONDATA);
    notifyIconData.hWnd = window_;
    notifyIconData.uID = 0;
    notifyIconData.uFlags = NIF_ICON | NIF_MESSAGE;
    notifyIconData.uCallbackMessage = message_;
    notifyIconData.hIcon = icon_;

    Shell_NotifyIcon(NIM_ADD, &notifyIconData);

    return true;
}
Exemplo n.º 20
0
bool TrayIconsManager::DelIcon(TrayIconHandler* handler)
{
	NOTIFYICONDATA data;
   BOOL res;

   // Remove the actual tray icon
   data.cbSize = sizeof(data);
   data.hWnd = vdWindow;
   data.uID = (UINT)handler;
   data.uFlags = 0;

   res = Shell_NotifyIcon(NIM_DELETE, &data);

   // Unset the message handler
   vdWindow.UnSetMessageHandler(handler->m_callbackMessage);

   // Remove from the list
   m_registered_handlers.erase(handler);

   return (res ? true : false);
}
Exemplo n.º 21
0
	//************************************
	// 函数名称: DeleteTrayIcon
	// 返回类型: void
	// 函数说明: 
	//************************************
	void CTrayIconUI::DeleteTrayIcon()
	{
		if (pIDuiTimer)
		{
			StopTwinkling();
			pIDuiTimer = NULL;
		}

		if(m_pDuiTime){
			m_pDuiTime->KillDuiTimer();
			delete m_pDuiTime;
			m_pDuiTime = NULL;
		}
				
		Shell_NotifyIcon(NIM_DELETE,&m_trayData);
		m_bEnabled		= false;
		m_bVisible		= false;
		m_bTwinkling	= false;
		m_hWnd			= NULL;
		m_uMessage		= UIEVENT_TRAYICON;
	}
Exemplo n.º 22
0
static void start_stop(HWND dlg)
{
	HWND button = GetDlgItem(dlg, IDOK);

	if (!button)
		err(1, "GetDlgItem()");

	if (_tcpcryptd == INVALID_HANDLE_VALUE) {
		start();
		SetWindowText(button, "Stop");
		SetWindowText(GetDlgItem(dlg, IDC_EDIT2), "tcpcrypt ON!");
		_nidcur = &_nid[1];
		Shell_NotifyIcon(NIM_MODIFY, _nidcur);
		SendMessage(_hwnd, WM_SETICON, ICON_SMALL,
			    (LPARAM) _nidcur->hIcon);
		EnableWindow(GetDlgItem(dlg, IDC_BUTTON2), TRUE);
	} else {
		stop();
		do_stop(dlg);
	}
}
Exemplo n.º 23
0
BOOL CTrayNotifyIcon::SetTooltipText(LPCTSTR pszTooltipText, BOOL bWin2k)
{
  if (!m_bCreated)
    return FALSE;

  if (!bWin2k)
  {
    ASSERT(_tcslen(pszTooltipText) < 64);
    m_NotifyIconData.cbSize = sizeof(NOTIFYICONDATA_1);
  }
  else
  {
    ASSERT(_tcslen(pszTooltipText) < 128);
    m_NotifyIconData.cbSize = sizeof(NOTIFYICONDATA_2);
  }

  //Call the Shell_NotifyIcon function
  m_NotifyIconData.uFlags = NIF_TIP;
  _tcscpy(m_NotifyIconData.szTip, pszTooltipText);
  return Shell_NotifyIcon(NIM_MODIFY, (PNOTIFYICONDATA) &m_NotifyIconData);
}
Exemplo n.º 24
0
void NgineSlackBrowser::OnCreate(HWND hWnd)
{
	RECT rc;
	GetClientRect(hWnd, &rc);

	CefWindowInfo window_info;
	window_info.SetAsChild(hWnd, rc);

	const char16 *font_family = L"맑은 고딕";
	const size_t font_family_size = wcslen(font_family);

	CefBrowserSettings browser_settings;
	cef_string_utf16_set(font_family, font_family_size, &browser_settings.standard_font_family, TRUE);
	cef_string_utf16_set(font_family, font_family_size, &browser_settings.serif_font_family, TRUE);
	cef_string_utf16_set(font_family, font_family_size, &browser_settings.sans_serif_font_family, TRUE);
	cef_string_utf16_set(font_family, font_family_size, &browser_settings.cursive_font_family, TRUE);
	cef_string_utf16_set(font_family, font_family_size, &browser_settings.fantasy_font_family, TRUE);
	browser_settings.local_storage = STATE_ENABLED;
	browser_settings.databases = STATE_ENABLED;
	browser_settings.application_cache = STATE_ENABLED;
	CefString url = "https://slack.com/ssb";

	m_handler = new NgineSlackClient(this);
	CefBrowserHost::CreateBrowser(window_info, m_handler.get(), url, browser_settings, NULL);

	HINSTANCE hInst = _AtlBaseModule.GetModuleInstance();

	ZeroMemory(&m_nidTray, sizeof(m_nidTray));
	m_nidTray.cbSize = sizeof(m_nidTray);
	m_nidTray.hWnd = hWnd;
	m_nidTray.uID = (UINT)hWnd;
	m_nidTray.uFlags = NIF_MESSAGE | NIF_ICON;
	m_nidTray.uCallbackMessage = WM_NOTIFYICON_TRAY;
	m_nidTray.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON));
	Shell_NotifyIcon(NIM_ADD, &m_nidTray);

	HMENU hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_TRAY_CONTEXTMENU));
	m_hTrayMenu = GetSubMenu(hMenu, 0);
	UpdateStartup();
}
Exemplo n.º 25
0
void InitProgram (HINSTANCE hInst)
{
    HICON hIcon, hIconSm;
    
    hwndDlg = CreateDialog(hInst, 
            MAKEINTRESOURCE(IDD_DLG_ZRJ), NULL, DlgProc);

    hwndEditUser = GetDlgItem (hwndDlg, IDC_EDT_USR);
    hwndEditPass = GetDlgItem (hwndDlg, IDC_EDT_PAS);
    hwndButtonConn = GetDlgItem (hwndDlg, IDC_BTN_CONN);
    hwndButtonExit = GetDlgItem (hwndDlg, IDC_BTN_EXIT);
    hwndComboList = GetDlgItem (hwndDlg, IDC_CBO_LIST);

    hIcon = LoadImage(GetModuleHandle(NULL), 
            MAKEINTRESOURCE(IDI_ICON_RJ), IMAGE_ICON, 32, 32, 0);
    hIconSm = LoadImage(GetModuleHandle(NULL), 
            MAKEINTRESOURCE(IDI_ICON_RJ), IMAGE_ICON, 16, 16, 0);

    //set application icon
    SendMessage(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
    SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)hIconSm);

    SendMessage(hwndDlg, WM_SETTEXT, NULL, (LPARAM)DIALOG_TITLE);


    /* Add icon to system tray */
    ZeroMemory(&niData,sizeof(NOTIFYICONDATA));
    
    niData.cbSize = sizeof(NOTIFYICONDATA);

    niData.uID = TRAYICONID;
    niData.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
    niData.hIcon = hIconSm;
    niData.hWnd = hwndDlg;
    niData.uCallbackMessage = SWM_TRAYMSG;
    lstrcpyn(niData.szTip, TEXT("zRuijie for GZHU"), sizeof(niData.szTip)/sizeof(TCHAR));

    Shell_NotifyIcon(NIM_ADD,&niData);

}
Exemplo n.º 26
0
BOOL CTrayNotifyIcon::SetBalloonDetails(LPCTSTR pszBalloonText, LPCTSTR pszBalloonCaption, BalloonStyle style, UINT nTimeout)
{
  //Validate our parameters
  ASSERT(_tcslen(pszBalloonText) < 256);
  ASSERT(_tcslen(pszBalloonCaption) < 64);

  if (!m_bCreated)
    return FALSE;

  //Call the Shell_NotifyIcon function
  m_NotifyIconData.uFlags = NIF_INFO;
  _tcscpy(m_NotifyIconData.szInfo, pszBalloonText);
  _tcscpy(m_NotifyIconData.szInfoTitle, pszBalloonCaption);
  m_NotifyIconData.uTimeout = nTimeout;
  switch (style)
  {
    case Warning:
    {
      m_NotifyIconData.dwInfoFlags = NIIF_WARNING;
      break;
    }
    case Error:
    {
      m_NotifyIconData.dwInfoFlags = NIIF_ERROR;
      break;
    }
    case Info:
    {
      m_NotifyIconData.dwInfoFlags = NIIF_INFO;
      break;
    }
    default:
    {
      ASSERT(FALSE);
      break;
    }
  }

  return Shell_NotifyIcon(NIM_MODIFY, (PNOTIFYICONDATA) &m_NotifyIconData);
}
Exemplo n.º 27
0
/*********************************************************************
*	Function: LRESULT CALLBACK MenuCommandHookProc(int nCode, WPARAM wParam, LPARAM lParam)
*	Author:	Chau Nguyen
*	Created On: 2003/10/24
* --------------------------------------------------------------------
*	Purpose: Intercept all command message to process my own menu command.
* --------------------------------------------------------------------
*	Input Parameters: No
*
*	Output Parameters: No
*
*	Return Value: No
*
* --------------------------------------------------------------------
* NOTE:
*	- 
*
* --------------------------------------------------------------------
* REVISION HISTORY:
*	Version		Date		Author		Description
*
*********************************************************************/
LRESULT CALLBACK MenuCommandHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
	// return immediately if system required
    if (nCode < 0){
        return CallNextHookEx(g_hMenuCommandHook, nCode, wParam, lParam); 
	}

	// process the arrival message
	MSG *msg = (MSG*)lParam;
	switch (msg->message) {
	case WM_SYSCOMMAND:
		if(LOWORD(msg->wParam) == SC_TRAYME ){
			// iterate to determine the arrival command belongs to which window
			for(UINT i = 0; i < g_iLastIndex; i++){
				if(g_listWnd[i].m_hWnd == (HWND)msg->hwnd){
					// check if it was not minimized yet
					if(!g_listWnd[i].m_bMinimized){
						// Add icon to tray
						Shell_NotifyIcon(NIM_ADD, &g_listWnd[i].m_niData);

						// free icon handle
						

						// hide window
						ShowWindow(g_listWnd[i].m_hWnd, SW_HIDE);

						// set the flag
						g_listWnd[i].m_bMinimized = TRUE;
					}
					
					break; // exit the for loop
				}
			}
		}
		break;
	}
	
	// call next hook
    return CallNextHookEx(g_hMenuCommandHook, nCode, wParam, lParam); 
}
static void addTaskBarIcons(HINSTANCE hInstance, HWND hWnd, BOOL& bInTaskBar)
{
	if (!service_flag)
	{
		HICON hIcon = (HICON) LoadImage(hInstance, MAKEINTRESOURCE(IDI_IBGUARD),
								  IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR);

		NOTIFYICONDATA nid;
		nid.cbSize = sizeof(NOTIFYICONDATA);
		nid.hWnd = hWnd;
		nid.uID = IDI_IBGUARD;
		nid.uFlags = NIF_TIP | NIF_ICON | NIF_MESSAGE;
		nid.uCallbackMessage = ON_NOTIFYICON;
		nid.hIcon = hIcon;
		lstrcpy(nid.szTip, GUARDIAN_APP_LABEL);

		// This will be true if we are using the explorer interface
		bInTaskBar = Shell_NotifyIcon(NIM_ADD, &nid);

		if (hIcon)
			DestroyIcon(hIcon);

		// This will be true if we are using the program manager interface
		if (!bInTaskBar)
		{
			char szMsgString[256];
			HMENU hSysMenu = GetSystemMenu(hWnd, FALSE);
			DeleteMenu(hSysMenu, SC_RESTORE, MF_BYCOMMAND);
			AppendMenu(hSysMenu, MF_SEPARATOR, 0, NULL);
			LoadString(hInstance, IDS_SVRPROPERTIES, szMsgString, 256);
			AppendMenu(hSysMenu, MF_STRING, IDM_SVRPROPERTIES, szMsgString);
			LoadString(hInstance, IDS_SHUTDOWN, szMsgString, 256);
			AppendMenu(hSysMenu, MF_STRING, IDM_SHUTDOWN, szMsgString);
			LoadString(hInstance, IDS_PROPERTIES, szMsgString, 256);
			AppendMenu(hSysMenu, MF_STRING, IDM_PROPERTIES, szMsgString);
			DestroyMenu(hSysMenu);
		}
	}
}
Exemplo n.º 29
0
static void OnSize(HWND hwnd, UINT state, int cx, int cy)
{
    NOTIFYICONDATA dta;

    if( state == SIZE_MINIMIZED ) {
        dta.cbSize = sizeof(NOTIFYICONDATA);
        dta.hWnd = hwnd;
        dta.uID = ID_TRAY;
        dta.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
        dta.uCallbackMessage = WM_SHELLNOTIFY;
        dta.hIcon = LoadIcon(GetWindowInstance(hwnd), MAKEINTRESOURCE(ID_ICON1));
        strcpy(dta.szTip, "D2CS Version");
        strcat(dta.szTip, " ");
        strcat(dta.szTip, D2CS_VERSION_STRING);

        Shell_NotifyIcon(NIM_ADD, &dta);
        ShowWindow(hwnd, SW_HIDE);
        return;
    }

    MoveWindow(ghwndConsole, 0, 0, cx, cy, TRUE);
}
Exemplo n.º 30
0
BOOL TrayMessage(HWND hDlg,DWORD dwMessage,UINT uID,HICON hIcon,LPCTSTR lpszTip)
{
	NOTIFYICONDATA tnd;

	tnd.cbSize	= sizeof(NOTIFYICONDATA);
	tnd.hWnd		= hDlg;
	tnd.uID		= uID;

	tnd.uFlags	= NIF_MESSAGE|NIF_ICON|NIF_TIP;
	tnd.uCallbackMessage	= MYWM_ICON;
	tnd.hIcon	= hIcon;
   if(lpszTip)
   {	
		//tnd.szTip大小为64,如果lpszTip大于该值则截断
   	memset(tnd.szTip,0,sizeof(tnd.szTip));
		lstrcpyn(tnd.szTip,lpszTip,sizeof(tnd.szTip));		
   }
   else
   	*tnd.szTip = '\0';

	return Shell_NotifyIcon(dwMessage, &tnd);
}