//============================================================================= // Paint the button depending on the state of the mouse //============================================================================= void StyleButton::DrawItem(LPDRAWITEMSTRUCT lpDIS) { CDC* pDC = CDC::FromHandle(lpDIS->hDC); // handle disabled state if(m_bIsDisabled) { m_pCurBtn = &m_StdGStyle; PaintBtn(pDC); return; } BOOL bIsPressed = (lpDIS->itemState & ODS_SELECTED); // handle toggle button if(m_bIsToggle && bIsPressed) { (m_nCurState == STD_STATE) ? m_nCurState = ALT_STATE : m_nCurState = STD_STATE; } // determine which style to copy if(bIsPressed) { if(m_nCurState == STD_STATE) m_pCurBtn = &m_StdPStyle; else m_pCurBtn = &m_AltPStyle; } else if(m_bIsHovering) { if(m_nCurState == STD_STATE) m_pCurBtn = &m_StdHStyle; else m_pCurBtn = &m_AltHStyle; } else { if(m_nCurState == STD_STATE) m_pCurBtn = &m_StdStyle; else m_pCurBtn = &m_AltStyle; } // paint the button PaintBtn(pDC); }
//绘制内容 void CPngButton::DrawItem(LPDRAWITEMSTRUCT lpDIS) { CDC* pDC = CDC::FromHandle(lpDIS->hDC); // 无效状态 if(m_bIsDisabled) { m_pCurBtn = &m_dcGS; PaintBtn(pDC); return; } BOOL bIsPressed = (lpDIS->itemState & ODS_CHECKED); // 交替类型 if(m_bIsToggle && bIsPressed) { (m_nCurType == STD_TYPE) ? m_nCurType = ALT_TYPE : m_nCurType = STD_TYPE; } if(bIsPressed) { if(m_nCurType == STD_TYPE) m_pCurBtn = &m_dcStdP; else m_pCurBtn = &m_dcAltP; } else if(m_bIsHovering) { if(m_nCurType == STD_TYPE) m_pCurBtn = &m_dcStdH; else m_pCurBtn = &m_dcAltH; } else { if(m_nCurType == STD_TYPE) m_pCurBtn = &m_dcStd; else m_pCurBtn = &m_dcAlt; } //绘制按钮 PaintBtn(pDC); }
//============================================================================= // Paint the button depending on the state of the mouse //============================================================================= void CGdipButtonTile::DrawItem(LPDRAWITEMSTRUCT lpDIS) { CDC* pDC = CDC::FromHandle(lpDIS->hDC); // handle disabled state if(m_bIsDisabled) { m_pCurBtn = &m_dcGS; PaintBtn(pDC); return; } BOOL bIsPressed = (lpDIS->itemState & ODS_SELECTED); // handle toggle button if(m_bIsToggle && bIsPressed) { (m_nCurType == STD_TYPE) ? m_nCurType = ALT_TYPE : m_nCurType = STD_TYPE; } if(bIsPressed) { if(m_nCurType == STD_TYPE) m_pCurBtn = &m_dcStdP; else m_pCurBtn = &m_dcAltP; } else if(m_bIsHovering) { if(m_nCurType == STD_TYPE) m_pCurBtn = &m_dcStdH; else m_pCurBtn = &m_dcAltH; } else { if(m_nCurType == STD_TYPE) m_pCurBtn = &m_dcStd; else m_pCurBtn = &m_dcAlt; } // paint the button PaintBtn(pDC); }