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 ) ; }
// ******************************** // @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 ) ; }