// ******************************** // IfDcDraw // ******************************** bool CDcdFillrect::DcDraw( IfDcdTarget* pIfDcdTarget ) { int iRv = 0 ; bool bRv = false ; // -------------------------------- // ブラシの生成 // -------------------------------- Ou<CGdiHBrushHolder> pCGdiHBrushHolder ; if ( iRv >= 0 ){ pCGdiHBrushHolder = pIfDcdTarget->createGdiHBrushHolder( m_CdBrushProp ) ; if ( pCGdiHBrushHolder == NULL ){ iRv = -1 ; // ペンの作成に失敗しました。 } } HBRUSH hBrushSid = NULL ; if ( iRv >= 0 ){ hBrushSid = (HBRUSH)SelectObject( pIfDcdTarget->getHdc() , pCGdiHBrushHolder->getHBrush() ) ; } // -------------------------------- // 描画 // -------------------------------- if ( iRv >= 0 ){ CdDcdZoneXy aCdDcdZoneXy = pIfDcdTarget->getZone() ; RECT LRect ; LRect.left = aCdDcdZoneXy.getX().getPos() ; LRect.top = aCdDcdZoneXy.getY().getPos() ; LRect.right = aCdDcdZoneXy.getX().getEndPos() ; LRect.bottom = aCdDcdZoneXy.getY().getEndPos() ; FillRect( pIfDcdTarget->getHdc() , &LRect , pCGdiHBrushHolder->getHBrush() ) ; } if ( iRv >= 0 ){ bRv = true ; } // -------------------------------- if ( hBrushSid != NULL ) { SelectObject( pIfDcdTarget->getHdc() , hBrushSid ) ; hBrushSid = NULL ; } return ( bRv ) ; }
// ******************************** // IfDcDraw // ******************************** bool CDcdRectangle::DcDraw( IfDcdTarget* pIfDcdTarget ) { int iRv = 0 ; bool bRv = false ; // -------------------------------- // ペン・ブラシの生成 // -------------------------------- Ou<CGdiHPenHolder> pHPenHolder ; if ( iRv >= 0 ){ pHPenHolder = pIfDcdTarget->createGdiHPenHolder( m_CdPenProp ) ; if ( pHPenHolder == NULL ){ iRv = -1 ; // ペンの作成に失敗しました。 } } Ou<CGdiHBrushHolder> pHBrushHolder ; if ( iRv >= 0 ){ pHBrushHolder = pIfDcdTarget->createGdiHBrushHolder( m_CdBrushProp ) ; if ( pHBrushHolder == NULL ){ iRv = -2 ; // ブラシの作成に失敗しました。 } } HBRUSH hBrushSid = NULL ; if ( iRv >= 0 ){ hBrushSid = (HBRUSH)SelectObject( pIfDcdTarget->getHdc() , pHBrushHolder->getHBrush() ) ; } HPEN hPenSid = NULL ; if ( iRv >= 0 ){ hPenSid = (HPEN)SelectObject( pIfDcdTarget->getHdc() , pHPenHolder->getHPen() ) ; } int iBkModeSid = -1 ; if ( iRv >= 0 ){ iBkModeSid = SetBkMode( pIfDcdTarget->getHdc() , TRANSPARENT ) ; } // -------------------------------- // 描画 // -------------------------------- if ( iRv >= 0 ){ CdDcdZoneXy aCdDcdZoneXy = pIfDcdTarget->getZone() ; RECT LRect ; LRect.left = aCdDcdZoneXy.getX().getPos() + m_CdPenProp.getLogicalunitWidth() / 2 ; LRect.top = aCdDcdZoneXy.getY().getPos() + m_CdPenProp.getLogicalunitWidth() / 2 ; LRect.right = aCdDcdZoneXy.getX().getEndPos() - m_CdPenProp.getLogicalunitWidth() / 2 ; LRect.bottom = aCdDcdZoneXy.getY().getEndPos() - m_CdPenProp.getLogicalunitWidth() / 2 ; Rectangle( pIfDcdTarget->getHdc() , LRect.left , LRect.top , LRect.right , LRect.bottom ) ; } if ( iRv >= 0 ){ bRv = true ; } // -------------------------------- if ( iBkModeSid != -1 ) { SetBkMode( pIfDcdTarget->getHdc() , iBkModeSid ) ; } if ( hBrushSid != NULL ){ SelectObject( pIfDcdTarget->getHdc() , hBrushSid ) ; hBrushSid = NULL ; } if ( hPenSid != NULL ){ SelectObject( pIfDcdTarget->getHdc() , hPenSid ) ; hPenSid = NULL ; } return ( bRv ) ; }