一,新建一个基于对话框的BCG工程,单BCGPGridCtrlGroup。
二,CBCGPGridCtrlGroupDlg类增加变量
CBCGPGridCtrl m_grid;
三,CBCGPGridCtrlGroupDlg::OnInitDialog
CRect r(0,0,300,300);
m_grid.Create(WS_CHILD, r, this, 1);
m_grid.ShowWindow(SW_SHOW);
m_grid.InsertColumn (0, _T("姓名"), 100);
m_grid.InsertColumn (1, _T("性别"), 100);
const int iCol = m_grid.GetColumnCount ();
for( long i = 0 ; i < 4 ; i++ )
{
CBCGPGridRow* pRow = m_grid.CreateRow (iCol);
if( NULL == pRow )
return TRUE ;
if( 0 == i )
{
pRow->GetItem(0)->SetValue(_T("曹操"));
pRow->GetItem(1)->SetValue(_T("男"));
}
else if( 1 == i )
{
pRow->GetItem(0)->SetValue(_T("孙尚香"));
pRow->GetItem(1)->SetValue(_T("女"));
}
else if( 2 == i )
{
pRow->GetItem(0)->SetValue(_T("黄月英"));
pRow->GetItem(1)->SetValue(_T("女"));
}
else if( 3 == i )
{
pRow->GetItem(0)->SetValue(_T("吕布"));
pRow->GetItem(1)->SetValue(_T("男"));
}
m_grid.AddRow (pRow, FALSE);
}
m_grid.InsertGroupColumn (0,1);
m_grid.AdjustLayout ();
四,Ctrl+F5看运行效果:按性别分组。如下图:
五,增加一个按钮,响应函数如下:
void CBCGPGridCtrlGroupDlg::OnButton1()
{
m_grid.SetCustomColors(RGB(255,0,0),RGB(0,255,0),RGB(0,0,255),-1,-1,-1);
}
六,Ctrl+F5查看运行效果,文字背景色变成红色,文字前景色变成绿色,群组文字变成蓝色。如图所示:
七,再增加一按钮,响应函数如下:
void CBCGPGridCtrlGroupDlg::OnButton2()
{
m_grid.SetCustomColors(-1,-1,-1,RGB(255,0,0),RGB(0,255,0),RGB(0,0,255));
}
八,Ctrl+F5查看运行效果。效果是:群组文字前景色变成红色,左边空隙变成绿色,线条变成蓝色。如图所示:
如果想设置更多颜色请用SetColorTheme函数。
源码下载:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~