⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gridctrl.cpp

📁 一个完整的数字硬盘录像机系统软件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
///////////////////////////////////////////////////////////////////////
COLORREF CGridCtrl::GetBkColor() const                   
{ 
	return m_crBkColour;              
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void  CGridCtrl::SetFixedTextColor(COLORREF clr)      
{ 
	m_crFixedTextColour = clr;        
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
COLORREF CGridCtrl::GetFixedTextColor() const            
{ 
	return m_crFixedTextColour;       
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void  CGridCtrl::SetFixedBkColor(COLORREF clr)        
{ 
	m_crFixedBkColour = clr;          
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
COLORREF CGridCtrl::GetFixedBkColor() const              
{ 
	return m_crFixedBkColour;         
} 
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void  CGridCtrl::SetGridColor(COLORREF clr)           
{ 
	m_crGridColour = clr;             
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
COLORREF CGridCtrl::GetGridColor() const                 
{ 
	return m_crGridColour;            
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
int CGridCtrl::GetSelectedCount() const                  
{ 
	return m_SelectedCellMap.GetCount(); 
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
CCellID CGridCtrl::GetFocusCell() const                  
{ 
	return m_idCurrentCell;           
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::SetImageList(CImageList* pList)          
{ 
	m_pImageList = pList;             
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
CImageList* CGridCtrl::GetImageList() const              
{ 
	return m_pImageList;              
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::SetGridLines(int nWhichLines) 
{ 
	m_nGridLines = nWhichLines;
	if (::IsWindow(GetSafeHwnd())) 
		Invalidate(); 
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
int  CGridCtrl::GetGridLines() const                     
{ 
	return m_nGridLines;              
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::SetEditable(BOOL bEditable)       
{ 
	m_bEditable = bEditable;          
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
BOOL CGridCtrl::IsEditable() const                       
{ 
	return m_bEditable;               
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::SetModified(BOOL bModified)       
{ 
	m_bModified = bModified;          
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
BOOL CGridCtrl::GetModified() const                      
{ 
	return m_bModified;               
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::SetListMode(BOOL bEnableListMode) 
{ 
	m_bListMode = bEnableListMode;    
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
BOOL CGridCtrl::GetListMode() const                      
{ 
	return m_bListMode;               
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::EnableSelection(BOOL bEnable)     
{ 
	ResetSelectedRange();
	m_bEnableSelection = bEnable;
	ResetSelectedRange(); 
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
BOOL CGridCtrl::IsSelectable() const                     
{ 
	return m_bEnableSelection;        
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::EnableDragAndDrop(BOOL bAllow)    
{ 
	m_bAllowDragAndDrop = bAllow;     
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
BOOL CGridCtrl::GetDragAndDrop() const                   
{ 
	return m_bAllowDragAndDrop;       
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::SetRowResize(BOOL bResize)        
{ 
	m_bAllowRowResize = bResize;      
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
BOOL CGridCtrl::GetRowResize() const                     
{ 
	return m_bAllowRowResize;         
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::SetColumnResize(BOOL bResize)     
{ 
	m_bAllowColumnResize = bResize;   
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
BOOL CGridCtrl::GetColumnResize() const                  
{ 
	return m_bAllowColumnResize;      
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::SetHeaderSort(BOOL bSortOnClick)  
{ 
	m_bSortOnClick = bSortOnClick;    
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
BOOL CGridCtrl::GetHeaderSort() const                    
{ 
	return m_bSortOnClick;            
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::SetHandleTabKey(BOOL bHandleTab)  
{ 
	m_bHandleTabKey = bHandleTab;     
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
BOOL CGridCtrl::GetHandleTabKey() const                  
{ 
	return m_bHandleTabKey;           
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::SetDoubleBuffering(BOOL bBuffer)  
{ 
	m_bDoubleBuffer = bBuffer;        
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
BOOL CGridCtrl::GetDoubleBuffering() const               
{ 
	return m_bDoubleBuffer;           
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::EnableTitleTips(BOOL bEnable)     
{ 
	m_bTitleTips = bEnable;           
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
BOOL CGridCtrl::GetTitleTips()                           
{ 
	return m_bTitleTips;
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void  CGridCtrl::EnsureVisible(CCellID &cell)
{ 
	EnsureVisible(cell.row, cell.col); 
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
int  CGridCtrl::SetMouseMode(int nMode) 
{ 
	int nOldMode = m_MouseMode;
	m_MouseMode = nMode;
	return nOldMode; 
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
int  CGridCtrl::GetMouseMode() const    
{ 
	return 
	m_MouseMode;
}
///////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////
void CGridCtrl::OnPaint() 
{
    CPaintDC dc(this);
    if (m_bDoubleBuffer)
    {
        CMemDC MemDC(&dc);
        OnDraw(&MemDC);
    }
    else
        OnDraw(&dc);
}
/////////////////////////////////////////////
//
/////////////////////////////////////////////
BOOL CGridCtrl::OnEraseBkgnd(CDC* /*pDC*/) 
{
    return TRUE;
}
////////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////////
void CGridCtrl::EraseBkgnd(CDC* pDC) 
{
    CRect  VisRect, ClipRect, rect;
    CBrush FixedBack(GetFixedBkColor()),
           TextBack(GetTextBkColor()),
           //Back(GetBkColor());
		   Back(GetCurrentColor(COLOR_BEIGE));
    if (pDC->GetClipBox(ClipRect) == ERROR) 
		return;
    GetVisibleNonFixedCellRange(VisRect);
    //画固定列背景
    int nFixedColumnWidth = GetFixedColumnWidth();
    if (ClipRect.left < nFixedColumnWidth && ClipRect.top < VisRect.bottom)
        pDC->FillRect(CRect(ClipRect.left, ClipRect.top, nFixedColumnWidth, VisRect.bottom),
                      &FixedBack);
    //画固定行背景
    int nFixedRowHeight = GetFixedRowHeight();
    if (ClipRect.top < nFixedRowHeight && 
        ClipRect.right > nFixedColumnWidth && ClipRect.left < VisRect.right)
        pDC->FillRect(CRect(nFixedColumnWidth-1, ClipRect.top, VisRect.right, nFixedRowHeight),
                      &FixedBack);
    //画非固定单元背景
    if (rect.IntersectRect(VisRect, ClipRect)) 
    {
        CRect CellRect(max(nFixedColumnWidth, rect.left), max(nFixedRowHeight, rect.top),
                       rect.right, rect.bottom);
        pDC->FillRect(CellRect, &TextBack);
    }
    // Draw right hand side of window outside grid
    if (VisRect.right < ClipRect.right) 
        pDC->FillRect(CRect(VisRect.right, ClipRect.top, ClipRect.right, ClipRect.bottom),
                      &Back);
    // Draw bottom of window below grid
    if (VisRect.bottom < ClipRect.bottom && ClipRect.left < VisRect.right) 
        pDC->FillRect(CRect(ClipRect.left, VisRect.bottom, VisRect.right, ClipRect.bottom),
                      &Back);
}
////////////////////////////////////////////////////
//
////////////////////////////////////////////////////
void CGridCtrl::OnSize(UINT nType, int cx, int cy) 
{
    SetFocus();
    CWnd::OnSize(nType, cx, cy);
    ResetScrollBars();    
}
///////////////////////////////////////////////////
//
///////////////////////////////////////////////////
UINT CGridCtrl::OnGetDlgCode() 
{
    UINT nCode = DLGC_WANTARROWS | DLGC_WANTCHARS;
    if (m_bHandleTabKey && !IsCTRLpressed()) 
        nCode |= DLGC_WANTTAB;
    return nCode;
}
/////////////////////////////////////////////////////
//
////////////////////////////////////////////////////
void CGridCtrl::OnSysColorChange() 
{
    CWnd::OnSysColorChange();
    if (GetTextColor() == m_crWindowText)
        SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
    if (GetTextBkColor() == m_crWindowColour)
        SetTextBkColor(::GetSysColor(COLOR_WINDOW));
    if (GetBkColor() == m_crShadow)
        SetBkColor(::GetSysColor(COLOR_3DSHADOW));
    if (GetFixedTextColor() == m_crWindowText)
        SetFixedTextColor(::GetSysColor(COLOR_WINDOWTEXT));
    if (GetFixedBkColor() == m_cr3DFace)
        SetFixedBkColor(::GetSysColor(COLOR_3DFACE));
    m_crWindowText   = ::GetSysColor(COLOR_WINDOWTEXT);
    m_crWindowColour = ::GetSysColor(COLOR_WINDOW);
    m_cr3DFace       = ::GetSysColor(COLOR_3DFACE);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -