让
MSHFlexGrid
条纹样显示
:
这次开发人事系统,在程序和视觉上是最大的问题,比如要求如条纹样的显示数数据:
1.
得知道显示的行数。
2.
得知道列数。
首先解决这两个问题:
在
ClassWizard
中为
MSHFlexGrid
添加一个变量。
例如:
名字为
m_HFlexGrd
。
那么横行就是
m_HFlxGrd.GetRows();
纵行:
m_HFlxGrd.GetCols(0);
返回值都是
unsigned
long
类型。
至此第一个问题结束。
接着的问题:
3.
前景和背景的着色。
前景着色:
m_HFlxGrd.SetCellBackColor(RGB(128,192,255));
背景着色:
m_HFlxGrd.SetCellForeColor(RGB(127,63,20));
4.
隔行显示:
有了
123
的问题解决,下面就是循环了:
考虑到行数如果少与
3
行就不去关着色的事,于是
if
(rows < 3)
{
//
状态码,现在暂时没有使用
return
0;
}
for
(
unsigned
long
i=2; i<rows; i+=2 )
{
for
(
unsigned
long
j=2; j<cols; j++)
{
_HFlxGrd.SetRow(i);
HFlxGrd.SetCol(j);
//
设背景色
m_HFlxGrd.SetCellBackColor(RGB(128,192,255));
//
设前景色
m_HFlxGrd.SetCellForeColor(RGB(127,63,20));
}
}
问题到这里似乎完成了,但是,还有一点宽度:
m_HFlxGrd.SetColWidth
这个函数可以用:
//
这才是开始的第一列
m_HFlxGrd.SetColWidth(1,0,600);
参数:
第一个是列,第二个未知(
msdn
不是很明白不过用
0
就可以)
,
第三个为宽度单位未知。
特别一提的是:
列数是从
0
开始的如果你不想看到最左边的那一列,请把他设置为宽度为
0
。
======================================================================
解决问题后的感受: 在试了2天终于查出来了,有时好象MSDN也不是那么有用啊。
或者难道是我不太好的英语? 有时按照英文意思猜测有时更有效哪。 VC在开发时更需要熟练的技能,和英文水平也有很多关系,怪不得这方面的书少资料也不是很好找。不过考虑到VC的强大功能。也是很值得的。