Exemple #1
0
// ********************************
//	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 ) ;
}
Exemple #2
0
// ********************************
//	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 ) ;
}