gSysTrayIcon.SetNotifyWindow(hWnd);
gSysTrayIcon.SetTrayIcon(handleIcon);
gSysTrayIcon.SetTrayIconTip(_T("SysTrayIcon"));
gSysTrayIcon.SetTrayIconWmMsg(WM_TRAYICON_MSGS);
if (!gSysTrayIcon.AddIconToSysTray())
{
::MessageBox(hWnd, _T("Unable to add Icon to System Tray."), _T("Error:"), MB_OK);
return;
}
}
這是一個很簡單的函數,我假設我有一個全局變量叫gSysTrayIcon。它是一個類對象;它有至少六個函數;它的五個函數是數據設定函數;它的最后一個函數是讓調用者告訴它把圖像加入System Tray。根據我自己設計的單元測試案例,我設計了以下的類:
#ifndef SYS_TRAY_ICON_H_
#define SYS_TRAY_ICON_H_
#include "shellapi.h"
class SysTrayIcon
{
private:
NOTIFYICONDATA niData;
public:
SysTrayIcon();
~SysTrayIcon();
void SetTrayIconID(UINT iconID);
void SetNotifyWindow(HWND hWnd);
void SetTrayIcon(HICON iconHandle);
void SetTrayIconTip(LPCTSTR szMsg);
void SetTrayIconWmMsg(UINT wmMsg);
BOOL AddIconToSysTray();
BOOL DeleteIconFromSysTray();
};
#endif
我的類成員設計如下,這里面有很多我無意中犯下的錯誤,也有我故意設置的錯誤,后面我用單元測試一點點地查找出一些常見的問題。為了順利通過我上面的單元測試,首先看看我的設計初稿: #include "StdAfx.h"
#include "SysTrayIcon.h"
#include
SysTrayIcon::SysTrayIcon()
{
ZeroMemory(&niData, sizeof(NOTIFYICONDATA));
niData.cbSize = (DWORD)sizeof(NOTIFYICONDATA);
niData.uFlags = NIF_ICON NIF_MESSAGE NIF_TIP;
}
SysTrayIcon::~SysTrayIcon()
{
DeleteIconFromSysTray();
}
文章來源于領測軟件測試網 http://www.kjueaiud.com/