作者在 2009-04-23 13:16:50 发布以下内容
void CMainFrame::OnTrayMessage(WPARAM wParam, LPARAM lParam)
{
if (lParam == WM_LBUTTONDBLCLK)
{
ShowWindow(SW_RESTORE);
}
else if (lParam == WM_RBUTTONDOWN)
{
CPoint m_point;
::GetCursorPos(&m_point);
{
if (lParam == WM_LBUTTONDBLCLK)
{
ShowWindow(SW_RESTORE);
}
else if (lParam == WM_RBUTTONDOWN)
{
CPoint m_point;
::GetCursorPos(&m_point);
CMenu menu;
menu.LoadMenu(IDM_TRAYMENU);
CMenu* submenu = menu.GetSubMenu(0);
SetForegroundWindow();
submenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, m_point.x,m_point.y,AfxGetApp()->m_pMainWnd,TPM_LEFTALIGN);
}
}
menu.LoadMenu(IDM_TRAYMENU);
CMenu* submenu = menu.GetSubMenu(0);
SetForegroundWindow();
submenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, m_point.x,m_point.y,AfxGetApp()->m_pMainWnd,TPM_LEFTALIGN);
}
}
一定要有SetForegroundWindow(),否则出现菜单后在点其他窗口会有bug