任务栏右下角图标程序:
在CMainFrame头文件中定义变量:
NOTIFYICONDATA nid;
在OnCreate函数中或者初始化函数中:
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = m_hWnd;
nid.uID = IDI_SYSTEMTRAY; //图标的ID
nid.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP;
nid.uCallbackMessage = WM_SYSTEMTRAY; //图标对应的消息的ID
nid.hIcon = AfxGetApp()->LoadIcon(IDI_SYSTEMTRAY);
wcscpy_s(nid.szTip,10, L"桌面锁");
::Shell_NotifyIcon(NIM_ADD,&nid);
用ON_MESSAGE将WM_SYSTEMTRAY与消息函数绑定:
LRESULT CMainFrame::OnSystemTray(WPARAM wParam, LPARAM lParam)
{
if(wParam == IDI_SYSTEMTRAY)
{
switch(lParam)
{
case WM_LBUTTONDOWN:
{
break;
}
case WM_RBUTTONDOWN:
{
break;
}
case WM_LBUTTONDBLCLK:
{
break;
}
}
}
return 0;
}
在程序退出之前还要:
NOTIFYICONDATA nid;
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = m_hWnd;
nid.uID = IDI_SYSTEMTRAY;
nid.uFlags = 0;
::Shell_NotifyIcon(NIM_DELETE, &nid);