Beispiel #1
0
bool CDcdFreeLine::getItemSize( IfDcdTarget* pIfDcdTarget , 
							CdDcdSizeXy* pCdDcdSizeXy ) 
{
	CdDcdSizeXy	aCdDcdSizeXy ;
	if ( m_posOrg.getX() < m_posDst.getX() ){
		aCdDcdSizeXy.setX( 
			m_posDst.getX() - m_posOrg.getX() + 1 ) ;
	}	else	{
		aCdDcdSizeXy.setX( 
			m_posOrg.getX() - m_posDst.getX() + 1 ) ;
	}
	if ( m_posOrg.getY() < m_posDst.getY() ){
		aCdDcdSizeXy.setY(
			m_posDst.getY() - m_posOrg.getY() + 1 ) ;
	}	else	{
		aCdDcdSizeXy.setY(
			m_posOrg.getY() - m_posDst.getY() + 1 ) ;
	}
	// --------------------------------
	aCdDcdSizeXy.setX( aCdDcdSizeXy.getX() + 
		( m_CdLineProp.getLogicalunitWidth() - 1 ) ) ;
	aCdDcdSizeXy.setY( aCdDcdSizeXy.getY() - 
		( m_CdLineProp.getLogicalunitWidth() - 1 ) ) ;

	// --------------------------------
	*pCdDcdSizeXy = aCdDcdSizeXy ;
	
	return ( true ) ;
}
Beispiel #2
0
	// ********************************
	// @name	属性
	// ********************************
	// ********************************
	// @name	操作
	// ********************************
DcdSize	CDcdGridXBorder::getColumnBorderSize( IfDcdTarget* pIfDcdTarget ) 
{
	int	iRv = 0 ;
	if ( m_bAutoColumnBorderSize ){
		CdDcdSizeXy	aCdDcdSizeXy ;
		if ( m_pIfDcDraw->getItemSize( pIfDcdTarget, &aCdDcdSizeXy ) ){
			iRv = aCdDcdSizeXy.getX() ;
		}
	}	else	{
		iRv = m_iColumnBorderSize ;
	}
	return ( iRv ) ;
}
int CDcdTargetCompatibleBitmap::resetSize( 
		const CdDcdSizeXy& aCdDcdSizeXy , HDC hDc ) 
{
	int	iRv = 0 ;
	// ********************************
	//	既存のDC・BITMAPを破棄
	// ********************************
	if ( iRv == 0 ){
		m_CdDcdSizeXy.setX( 0 ).setY( 0 ) ;

		if ( m_hBitmapSid != NULL ){
			SelectObject( m_hDc , m_hBitmapSid ) ;
			m_hBitmapSid = NULL ;
		}	
		if ( m_hBitmap != NULL ){
			DeleteObject( m_hBitmap ) ;
			m_hBitmap = NULL ;
		}
		if ( m_hDc != NULL ){
			DeleteDC( m_hDc ) ;
			m_hDc = NULL ;
		}
	}
	// ********************************
	//	新しいDC・BITMAPを作成
	// ********************************
	if ( aCdDcdSizeXy.getX() > 0 && aCdDcdSizeXy.getY() > 0 ){
		bool	bhDcDeleteObligatory = false ;
		if ( hDc == NULL ){
			hDc = GetDC( NULL ) ;
			bhDcDeleteObligatory = true ;
		}

		if ( iRv == 0 ){
			m_hDc = CreateCompatibleDC( hDc ) ;
			if ( m_hDc == NULL ){
				iRv = -1 ;	//	DCの作成に失敗しました
			}
		}	
		if ( iRv == 0 ){
			m_hBitmap = CreateCompatibleBitmap( hDc , aCdDcdSizeXy.getX() , aCdDcdSizeXy.getY() ) ;
			if ( m_hBitmap == NULL ){
				iRv = -2 ;	//	BITMAPの作成に失敗しました
			}
			
		}
		if ( iRv == 0 ){
			m_hBitmapSid = (HBITMAP)SelectObject( m_hDc , m_hBitmap ) ;
		}
		if ( iRv == 0 ){
			m_CdDcdSizeXy = aCdDcdSizeXy ;
		}	
		// --------------------------------
		if ( bhDcDeleteObligatory ){
			ReleaseDC( NULL , hDc ) ;
			hDc = NULL ;
		}
	}	
	
	return ( iRv ) ;
}