SDC C-Project CF Review 프로그램
KEJ
2023-11-24 9020bfb6f86ff853d5d5b3cee882132a244232da
Internal_Library/CHCommonControls/GridCellBase.cpp
@@ -68,13 +68,19 @@
/////////////////////////////////////////////////////////////////////////////
// GridCellBase Operations
void CGridCellBase::Reset()
{
   m_Hide=false;
    m_nState  = 0;
   m_MergeRange.Set();
   m_IsMergeWithOthers=false;
   m_MergeCellID.row=-1;
   m_MergeCellID.col=-1;
}
void CGridCellBase::operator=(const CGridCellBase& cell)
void CGridCellBase::operator=( CGridCellBase& cell)
{
   if (this == &cell) return;
@@ -89,6 +95,11 @@
    SetBackClr(cell.GetBackClr());
    SetFont(cell.IsDefaultFont()? NULL : cell.GetFont());
    SetMargin(cell.GetMargin());
//Used for merge cells
//by Huang Wei
   SetMergeCellID(cell.GetMergeCellID());
   SetMergeRange(cell.GetMergeRange());
   Show(cell.IsShow());
}
/////////////////////////////////////////////////////////////////////////////
@@ -114,6 +125,14 @@
{
    // Note - all through this function we totally brutalise 'rect'. Do not
    // depend on it's value being that which was passed in.
   //Used for merge cells
   //by Huang Wei
   if(   m_Hide && !IsMerged())
   {
      return TRUE;
   }
    CGridCtrl* pGrid = GetGrid();
    ASSERT(pGrid);
@@ -206,7 +225,7 @@
            rect.bottom--;
        }
      //rect.DeflateRect(0,1,1,1);  - Removed by Yogurt
      rect.DeflateRect(0,1,1,1);
    }
    else if ((GetState() & GVIS_SELECTED))
    {
@@ -277,10 +296,7 @@
            pDC->SelectObject(pFont);
    }
    //rect.DeflateRect(GetMargin(), 0); - changed by Yogurt
    rect.DeflateRect(GetMargin(), GetMargin());
    rect.right++;
    rect.bottom++;
    rect.DeflateRect(GetMargin(), 0);
    if (pGrid->GetImageList() && GetImage() >= 0)
    {
@@ -336,8 +352,7 @@
        BOOL bVertical = (GetFont()->lfEscapement == 900);
        // Only draw if it'll fit!
        //if (size.cx + rect.left < rect.right + (int)(2*GetMargin())) - changed / Yogurt
        if (size.cx + rect.left < rect.right)
        if (size.cx + rect.left < rect.right + (int)(2*GetMargin()))
        {
            int nTriangleBase = rect.bottom - nOffset - size.cy;    // Triangle bottom right
            //int nTriangleBase = (rect.top + rect.bottom - size.cy)/2; // Triangle middle right
@@ -610,6 +625,13 @@
// printed correctly.
BOOL CGridCellBase::PrintCell(CDC* pDC, int /*nRow*/, int /*nCol*/, CRect rect)
{
   //Used for merge cells
   //by Huang Wei
   if(   m_Hide && !IsMerged())
   {
      return TRUE;
   }
#if defined(_WIN32_WCE_NO_PRINTING) || defined(GRIDCONTROL_NO_PRINTING)
    return FALSE;
#else
@@ -627,6 +649,11 @@
    int nSavedDC = pDC->SaveDC();
    pDC->SetBkMode(TRANSPARENT);
   //Used for merge cells
   //by Huang Wei
   rect.InflateRect(1,1);
   pDC->Rectangle(rect);
   rect.DeflateRect(1,1);
    if (pGrid->GetShadedPrintOut())
    {
@@ -771,3 +798,66 @@
    else
        return 0;
}
//Used for merge cells
//by Huang Wei
void CGridCellBase::Show(bool IsShow)
{
   m_Hide=!IsShow;
}
//Used for merge cells
//by Huang Wei
void CGridCellBase::SetMergeRange(CCellRange range)
{
   m_MergeRange=range;
}
//Used for merge cells
//by Huang Wei
CCellRange CGridCellBase::GetMergeRange()
{
   return m_MergeRange;
}
//Used for merge cells
//by Huang Wei
bool CGridCellBase::IsMerged()
{
   return m_MergeRange.Count()>1;
}
//Used for merge cells
//by Huang Wei
void CGridCellBase::SetMergeCellID(CCellID cell)
{
   m_MergeCellID=cell;
   if(cell.row!=-1)
      m_IsMergeWithOthers=true;
   else
      m_IsMergeWithOthers=false;
}
//Used for merge cells
//by Huang Wei
CCellID CGridCellBase::GetMergeCellID()
{
   return m_MergeCellID;
}
//Used for merge cells
//by Huang Wei
bool CGridCellBase::IsMergeWithOthers()
{
   return m_IsMergeWithOthers;
}
//Used for merge cells
//by Huang Wei
bool CGridCellBase::IsShow()
{
   return !m_Hide;
}
//Used for merge cells
//by Huang Wei
void CGridCellBase::UnMerge()
{
   m_Hide=false;
   m_MergeRange.Set();
   m_IsMergeWithOthers=false;
   m_MergeCellID.row=-1;
   m_MergeCellID.col=-1;
}