2010-11-09 63 views
0

我一直在編寫一個程序來ping三個不同的網站,然後通知用戶他們是否有互聯網。原生C++ Systray應用程序問題

爲了讓這個程序能夠正常工作,我獲得了很多成功,這在很大程度上歸功於社區的出色表現。

我的代碼是用原生C++編寫的,因爲我知道最好的語言。我所希望的是讓社區指示我讓程序在系統托盤中運行而不使用.net編程。

我正在使用Visual Studio 2008,並且我的代碼使用安裝項目安裝。我會很感激你們可以給我看的任何幫助。謝謝。

回答

2

本機C++系統托盤應用程序基於Win32 Shell API Shell_NotifyIcon

要增加你的圖標到任務欄中的你想是這樣的:

memset(&iconData, 0, sizeof(NOTIFYICONDATA)); 
iconData.hIcon = ::LoadIcon(hResourceModule, MAKEINTRESOURCE(IDR_MAINFRAME)); 
iconData.hIcon = ::LoadIcon(hResourceModule, MAKEINTRESOURCE(IDI_ICON)); 
iconData.cbSize = sizeof(NOTIFYICONDATA); 
iconData.uFlags = NIF_ICON | NIF_TIP; 
iconData.hWnd = this->m_hWnd; 
strncpy(iconData.szTip, programTitle_buffer, programTitle_length); 
if(iconData.hIcon) 
{ 
    Shell_NotifyIcon(NIM_ADD, &iconData); 
} 

要刪除的圖標,你想是這樣的:

Shell_NotifyIcon(NIM_DELETE, &iconData);