当前位置: 代码迷 >> VC/MFC >> 在网上找到了CGridListCtrlEx请教下面这个如何重载
  详细解决方案

在网上找到了CGridListCtrlEx请教下面这个如何重载

热度:113   发布时间:2016-05-02 03:43:21.0
在网上找到了CGridListCtrlEx请问下面这个怎么重载

下面是设置单独颜色和字体,请问这个怎么重载能详细说下具体步骤设置,谢谢!

If we want to change the foreground/background color or the font style (bold, italic, underline), then we can override the methods CGridListCtrlEx::OnDisplayCellColor() and CGridListCtrlEx::OnDisplayCellFont().

bool MyGridCtrl::OnDisplayCellColor(int nRow, int nCol, COLORREF& textColor, COLORREF& backColor)
{
   if (nRow == 3 && nCol == 3)
   {
      textColor = RGB(0,255,0);
      backColor = RGB(0,0,255);
      return true;  // I want to override the color of this cell
   }
   return false;  // Use default color
}
------解决思路----------------------
下面是设置单独颜色和字体,请问这个怎么重载能详细说下具体步骤设置,谢谢!

If we want to change the foreground/background color or the font style (bold, italic, underline), then we can override the methods CGridListCtrlEx::OnDisplayCellColor() and CGridListCtrlEx::OnDisplayCellFont().

bool MyGridCtrl::OnDisplayCellColor(int nRow, int nCol, COLORREF& textColor, COLORREF& backColor)
{
   if (nRow == 3 && nCol == 3)
   {
      textColor = RGB(0,255,0);
      backColor = RGB(0,0,255);

      return true;  // I want to override the color of this cell
   }
   return false;  // Use default color
}

红色的语句改成你需要的行列,颜色改成你需要的颜色就是重载啊
------解决思路----------------------
自定义个类 从CGridListCtrlEx 派生 会吧?
------解决思路----------------------
引用:
Quote: 引用:

自定义个类 从CGridListCtrlEx 派生 会吧?

这个会,然后具体怎么做
给这个自定义类添加函数
bool MyGridCtrl::OnDisplayCellColor(int nRow, int nCol, COLORREF& textColor, COLORREF& backColor)
{
   if (nRow == 3 && nCol == 3)
   {
      textColor = RGB(0,255,0);
      backColor = RGB(0,0,255);
      return true;  // I want to override the color of this cell
   }
   return false;  // Use default color
}

然后使用这个类声明一个控件 使用就ok了