设置FlexGrid控件中单元格的底色

时间:2020-12-05 16:24:02
向FlexGrid控件中的方格写入字符串,要求最新写入的字符串,背景色设为红色,请教如何实现,请附代码说明,多谢

16 个解决方案

#1


关注,顶一个!

#2


要直接改FlexGrid很難,不過你可以做一個edit放在FlexGrid被修改的位置,自己畫得像該處的表格就行了。

#3


或者这样能实现吗,我写进去的字符显示为黑色,我想把它显示为红色,怎么实现呢

#4


响应MouseDown消息,根据该函数的参数x,y判断点击的地方是不是需要放置EditCtrl的地方。注意,x,y的单位是twip,需要转换成像素。
转换公式:
1英寸==1440 twip
1英寸==96 pixel

如果点击的是需要放置EditCtrl的地方,就在该区域显示一个Edit。该区域大小应该等于鼠标点击的那个单元格的大小。

#5


又查了一下,不用那么复杂的
设置背景颜色:CellBackColor
设置前景颜色:CellForeColor

#6


修改颜色直接用函数实现,
向FlexGrid中输入字符串就要用到pomelowu说的方法了。

#7


输入字符串,很容易实现用m_FlexGrid.SetText(字符串)即可,关键是要红色的

#8


我要红色的目的,是提示,红色的字符串 是最新的,为了醒目。

#9


1、使全部灰化:m_FlexGrid.SetBackColor(192); 
2、使第0行第0列灰化: m_FlexGrid.SetBackColorFixed(192); 
3:使某一单元格灰化:m_FlexGrid.SetCellBackColor(192); 
4:使所有的单元格内容的字体变成灰色: m_FlexGrid.SetForeColor(192); 

其中m_FlexGrid为msflexgrid的控制类型的变量

#10


1、使全部灰化:m_FlexGrid.SetBackColor(255); 
2、使第0行第0列灰化: m_FlexGrid.SetBackColorFixed(255); 
3:使某一单元格灰化:m_FlexGrid.SetCellBackColor(255); 
4:使所有的单元格内容的字体变成灰色: m_FlexGrid.SetForeColor(255); 

其中m_FlexGrid为msflexgrid的控制类型的变量

#11


up

#12


多谢了,太好了。有一点想问,就是如何让指定的单元格变红呢,比如第2行第3列。

#13


或者说如何变红的单元格再恢复本色呢。

#14


是不是255代表红色,那么其他的数值呢,能不能提供点更多的信息呢。

#15


有其他的数值,0~255之间的数值是代表了不同种颜色

#16


 m_FlexGrid.SetFixedRows(1);          //设置固定行数为1行
     m_FlexGrid.SetFixedCols(1);           //设置固定列数为0列
 m_FlexGrid.SetCellBackColor(255);

     m_FlexGrid.SetFixedRows(1);          //设置固定行数为1行
     m_FlexGrid.SetFixedCols(2);           //设置固定列数为0列
     m_FlexGrid.SetCellBackColor(255);
 
 m_FlexGrid.SetFixedRows(1);          //设置固定行数为1行
     m_FlexGrid.SetFixedCols(1);           //设置固定列数为0列


这样写就行了, 我摸唢了很久

#1


关注,顶一个!

#2


要直接改FlexGrid很難,不過你可以做一個edit放在FlexGrid被修改的位置,自己畫得像該處的表格就行了。

#3


或者这样能实现吗,我写进去的字符显示为黑色,我想把它显示为红色,怎么实现呢

#4


响应MouseDown消息,根据该函数的参数x,y判断点击的地方是不是需要放置EditCtrl的地方。注意,x,y的单位是twip,需要转换成像素。
转换公式:
1英寸==1440 twip
1英寸==96 pixel

如果点击的是需要放置EditCtrl的地方,就在该区域显示一个Edit。该区域大小应该等于鼠标点击的那个单元格的大小。

#5


又查了一下,不用那么复杂的
设置背景颜色:CellBackColor
设置前景颜色:CellForeColor

#6


修改颜色直接用函数实现,
向FlexGrid中输入字符串就要用到pomelowu说的方法了。

#7


输入字符串,很容易实现用m_FlexGrid.SetText(字符串)即可,关键是要红色的

#8


我要红色的目的,是提示,红色的字符串 是最新的,为了醒目。

#9


1、使全部灰化:m_FlexGrid.SetBackColor(192); 
2、使第0行第0列灰化: m_FlexGrid.SetBackColorFixed(192); 
3:使某一单元格灰化:m_FlexGrid.SetCellBackColor(192); 
4:使所有的单元格内容的字体变成灰色: m_FlexGrid.SetForeColor(192); 

其中m_FlexGrid为msflexgrid的控制类型的变量

#10


1、使全部灰化:m_FlexGrid.SetBackColor(255); 
2、使第0行第0列灰化: m_FlexGrid.SetBackColorFixed(255); 
3:使某一单元格灰化:m_FlexGrid.SetCellBackColor(255); 
4:使所有的单元格内容的字体变成灰色: m_FlexGrid.SetForeColor(255); 

其中m_FlexGrid为msflexgrid的控制类型的变量

#11


up

#12


多谢了,太好了。有一点想问,就是如何让指定的单元格变红呢,比如第2行第3列。

#13


或者说如何变红的单元格再恢复本色呢。

#14


是不是255代表红色,那么其他的数值呢,能不能提供点更多的信息呢。

#15


有其他的数值,0~255之间的数值是代表了不同种颜色

#16


 m_FlexGrid.SetFixedRows(1);          //设置固定行数为1行
     m_FlexGrid.SetFixedCols(1);           //设置固定列数为0列
 m_FlexGrid.SetCellBackColor(255);

     m_FlexGrid.SetFixedRows(1);          //设置固定行数为1行
     m_FlexGrid.SetFixedCols(2);           //设置固定列数为0列
     m_FlexGrid.SetCellBackColor(255);
 
 m_FlexGrid.SetFixedRows(1);          //设置固定行数为1行
     m_FlexGrid.SetFixedCols(1);           //设置固定列数为0列


这样写就行了, 我摸唢了很久