From 9020bfb6f86ff853d5d5b3cee882132a244232da Mon Sep 17 00:00:00 2001 From: KEJ <kimeungju@diteam.co.kr> Date: 금, 24 11월 2023 15:33:29 +0900 Subject: [PATCH] Merge branch 'feature/#4528_CF_AOI_Review_Motor_Offset_기능_추가' into develop --- Internal_Library/CHCommonControls/GridCellBase.cpp | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 100 insertions(+), 10 deletions(-) diff --git a/Internal_Library/CHCommonControls/GridCellBase.cpp b/Internal_Library/CHCommonControls/GridCellBase.cpp index c33b250..4bc7925 100644 --- a/Internal_Library/CHCommonControls/GridCellBase.cpp +++ b/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()) { @@ -770,4 +797,67 @@ return pGrid->SendMessageToParent(nRow, nCol, nMessage); else return 0; -} \ No newline at end of file +} +//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; +} -- Gitblit v1.9.3