//============================================================================= void CXButtonXP::OnLButtonUp(UINT nFlags, CPoint point) //============================================================================= { if (HitMenuBtn(point)) { CRect rect; GetWindowRect(rect); if (m_pParentWnd) m_pDropDownMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON, rect.left, rect.bottom, m_pParentWnd); } else { CButton::OnLButtonUp(nFlags, point); } }
//////////////////////////////////////////////////////////////////////////////// // // FUNCTION: OnLButtonDown // // DESCRIPTION: handles button pressed state, including drop down menu // // // NOTES: // // MAINTENANCE: // Name: Date: Version: Notes: // NT ALMOND 210100 1.0 Origin // NT ALMOND 020703 1.1 Fix unwanted message //////////////////////////////////////////////////////////////////////////////// void CCoolBtn::OnLButtonDown(UINT nFlags, CPoint point) { if (m_bMenuPushed) { m_bMenuPushed = FALSE; Invalidate(); return; } if (HitMenuBtn(point)) { m_bMenuPushed = TRUE; SetFocus(); Invalidate(); CRect rc; GetWindowRect(rc); int x = rc.left; int y = rc.bottom; m_menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,x,y,m_pParentWnd); m_bMenuPushed = FALSE; } else { m_bPushed = TRUE; } Invalidate(); if (m_bPushed) CButton::OnLButtonDown(nFlags, point); }