LRESULT CMainDlg::OnIconNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL/* bHandled*/) { switch (lParam) { case WM_RBUTTONDOWN: { SetForegroundWindow(m_hWnd); //显示右键菜单 SMenu menu; menu.LoadMenu(_T("menu_tray"),_T("smenu")); POINT pt; GetCursorPos(&pt); menu.TrackPopupMenu(0,pt.x,pt.y,m_hWnd); }break; case WM_LBUTTONDOWN: { //显示/隐藏主界面 if (IsIconic()) ShowWindow(SW_SHOWNORMAL); else ShowWindow(SW_MINIMIZE); }break; default: break; } return S_OK; }
void CFolderHander::OnBtnFileTypes(EventArgs *pEvt) { SWindow *pBtn = sobj_cast<SWindow>(pEvt->sender); CRect rcBtn = pBtn->GetWindowRect(); HWND hWnd = pBtn->GetContainer()->GetHostHwnd(); ::ClientToScreen(hWnd,(LPPOINT)&rcBtn); ::ClientToScreen(hWnd,(LPPOINT)&rcBtn+1); SMenu menu; menu.LoadMenu(_T("menu_filetype"),_T("xml")); for(int i=0;i<(int)m_lstLangExts.GetCount();i++) { SStringW strDesc = m_lstLangExts[i].strLang+L":"+m_lstLangExts[i].strExts; menu.InsertMenu(i,MF_BYPOSITION,i+10,S_CW2T(strDesc),-1); } int id = menu.TrackPopupMenu(TPM_RIGHTALIGN|TPM_RETURNCMD,rcBtn.right,rcBtn.bottom,hWnd); if(id!=0) { id-=10; SEdit *pEdit = m_pFolderRoot->FindChildByName2<SEdit>(L"edit_filetypes"); SASSERT(pEdit); if(pEdit->GetWindowTextLength()!=0) { pEdit->SetSel((DWORD)-1); pEdit->ReplaceSel(L";"); } pEdit->SetSel((DWORD)-1); pEdit->ReplaceSel(m_lstLangExts[id].strExts); } }
void CMainDlg::OnBtnMenu() { SMenu menu; menu.LoadMenu(_T("menu_test"),_T("LAYOUT")); POINT pt; GetCursorPos(&pt); menu.TrackPopupMenu(0,pt.x,pt.y,m_hWnd); }