阿杰 发表于 2010-1-27 21:12:28

vc之托盘图标的创建

int CIMOPDlg::OnCreate()
{


// if (CDialog::OnCreate(lpCreateStruct) == -1)
// return -1;
m_tnid.cbSize = sizeof(NOTIFYICONDATA);
m_tnid.hWnd = this->m_hWnd;
m_tnid.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP;
m_tnid.uCallbackMessage = MYWM_NOTIFYICON; //用户自定义回调消息
CString szTooltip;
szTooltip = _T("");
_tcscpy(m_tnid.szTip,szTooltip);
m_tnid.uID = IDR_MAINFRAME; //托盘图标
HICON hicon;
hicon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_tnid.hIcon = hicon;
::Shell_NotifyIcon(NIM_ADD,&m_tnid);
// if(hicon)::DestroyIcon(hicon);
return 0;


} //创建托盘

LRESULT CIMOPDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case MYWM_NOTIFYICON: //自定义消息
if(lParam == WM_LBUTTONDBLCLK)
{
AfxGetApp()->m_pMainWnd->ShowWindow(SW_SHOW);
}
else if(lParam == WM_RBUTTONDOWN)
{
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu *pMenu = menu.GetSubMenu(0);
CPoint point;
GetCursorPos(&point);
pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,AfxGetMainWnd());
}
break;
case WM_SYSCOMMAND: //系统消息
if(wParam == SC_MINIMIZE)
{
AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE);
return 0;
}
break;
}
return CDialog::WindowProc(message, wParam, lParam);


} //相应托盘消息
页: [1]
查看完整版本: vc之托盘图标的创建