#define MYWM_NOTIFYICON WM_USER+1
protected:
NOTIFYICONDATA m_tnid;
int C*Dlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
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;
strcpy(m_tnid.szTip, "托盘图标实例");
m_tnid.uID=IDR_MAINFRAME;
//HICON hIcon;
//hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_tnid.hIcon=m_hIcon;
::Shell_NotifyIcon(NIM_ADD,&m_tnid);
//if(hIcon)::DestroyIcon(hIcon);
LRESULT C*Dlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
switch(message){
case MYWM_NOTIFYICON:
if(lParam==WM_RBUTTONDOWN)
{
CMenu menu;
menu.LoadMenu(IDR_MENU1);
SetForegroundWindow();
CMenu* pMenu=menu.GetSubMenu(0);
CPoint pos;
GetCursorPos(&pos);
pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,AfxGetMainWnd());
PostMessage(WM_NULL, 0,0); //用于失去焦点菜单消失
}
break;
}
return CDialog::WindowProc(message, wParam, lParam);
分类目录
更多
0 条评论