CGridCtrl 添加button (CGridCellButton類)

來源:互聯網
上載者:User

標籤:

#ifndef __GRID_CELL_BUTTON__#define __GRID_CELL_BUTTON__#include "../GridCtrl_src/GridCell.h"  class CGridCellButton : public CGridCell{    friend class CGridCtrl;    DECLARE_DYNCREATE(CGridCellButton)public:    CGridCellButton(void);    ~CGridCellButton(void);public:    virtual BOOL Draw(CDC* pDC, int nRow, int nCol, CRect rect, BOOL bEraseBkgnd = TRUE);protected:    virtual void OnClick(CPoint PointCellRelative);protected:    CRect m_rect;    BOOL m_bPushing;};#endif

 

.cpp:

#include "stdafx.h"  #include "../GridCtrl_src/GridCell.h"  #include "../GridCtrl_src/GridCtrl.h"  #include "GridCellButton.h"  #ifdef _DEBUG  #define new DEBUG_NEW  #undef THIS_FILE  static char THIS_FILE[] = __FILE__;#endif  IMPLEMENT_DYNCREATE(CGridCellButton, CGridCell)CGridCellButton::CGridCellButton(void){    m_bPushing = FALSE;}CGridCellButton::~CGridCellButton(void){}BOOL CGridCellButton::Draw(CDC* pDC, int nRow, int nCol, CRect rect, BOOL bEraseBkgnd /* = TRUE */){    m_rect = rect;    pDC->SetBkMode(TRANSPARENT);    rect.DeflateRect(GetMargin(), 0);    CFont* pOldFont = pDC->SelectObject(GetFontObject());    pDC->DrawFrameControl(rect, DFC_BUTTON, m_bPushing ? DFCS_BUTTONPUSH | DFCS_PUSHED : DFCS_BUTTONPUSH);    COLORREF ColorCurrent = pDC->GetTextColor();    pDC->SetTextColor(::GetSysColor(COLOR_BTNTEXT));    pDC->DrawText(GetText(), -1, rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS);    pDC->SetTextColor(ColorCurrent);    return TRUE;}void CGridCellButton::OnClick(CPoint PointCellRelative){    m_bPushing = !m_bPushing;    GetGrid()->InvalidateRect(m_rect);}

 

編譯環境:vs2013  CGridCtrl版本:2.27

CGridCtrl 添加button (CGridCellButton類)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.