有关网格(Grid)控件的一些想法
来源:互联网 发布:什么是矩阵单位化 编辑:程序博客网 时间:2024/04/28 00:44
实际应用中经常和表格打交道,尤其是数据库项目开发中。在VB6中,使用过VSFlexGrid,那绝对是一个好东西,数据方面:支持数据库绑定和虚模式;外观上:支持行列隐藏、滚动条隐藏、行列冻结、合并单元格等。
现在有个想法,就是能否有一个实现报表式的控件,并能支持虚模式及绑定数据库,这里所谓的报表式,是指网格控件不是单一的二维数据表可视化,而是有一些报表功能,如有表头和表足(或者叫顶部固定行、底部固定行,可多行,能单元格合并),表头(或列头)、表足往往蕴含丰富信息,如分组列头,表足显示单元格汇聚信息等。
一、在VB6下考虑过用几个网格合并做一个自定义的控件,似乎可以,但外观上有些别扭。因MS把VB甩在半路上,只好转到MFC。
二、在MFC下,修改Chris Maunder MFC Grid control 似乎也可以,但工作量很大,目前实现了表头、表足,单元格合并(参考Huang Wei代码),行列冻结,改进GridCellCheck和GridCellCombo单元格类型。表头表足工作在实模式下,另建立其对应的后台单元格对象数组做维护。但在数据绑定虚模式下遇到问题,没能做下去。
三、修改BCG的BCGPGridCtrl1200,重点是表头表足部分。
修正了几个小Bug(本想向BCG报告,但英文差,怕表达不清):
1、当设置了表头或表足,并显示行头时,滚动窗口行头重绘错乱,垂直滚动条与表足交叉部闪烁。
......
pGrid->EnableRowHeader (TRUE);
pGrid->EnableLineNumbers ();
// 测试表头足高
pGrid->SetGridHeaderHeight(20);
pGrid->SetGridFooterHeight(40);
......
(解决方法:修改CBCGPGridCtrl::OnGetRowHeaderRect() 及 CBCGPGridCtrl::OnDraw())
2、当设置了冻结列,并设置调整列宽时不显示内容,在调整冻结列下一列的列宽时,该列内容被冻结列遮盖
// 冻结第2列
pGrid->FreezeColumns (2, FALSE);
// 拖动列宽调节时,不显示内容
pGrid->SetShowDragContext(FALSE);
(解决方法:修改CBCGPGridCtrl::OnLButtonUp())
3、调整表头布局。将自定义表头部分调到列头上方。
。。。(待续)
- 有关网格(Grid)控件的一些想法
- 有关绩效考核系统的一些想法
- 有关数字出版的一些想法
- 有关web开发的一些想法
- 有关PR消失谣传的一些想法
- 有关读书求知的一些想法
- 有关读书求知的一些想法
- 有关U盘挂载的一些想法
- 有关U盘挂载的一些想法
- 有关读书求知的一些想法
- 有关混合数据类型转换的一些想法
- 有关 flash和苹果,微软大战的一些想法。
- 有关结对编程的一些新想法
- TopLanguage › {读书} 有关读书求知的一些想法
- 有关原码、反码以及补码的一些想法
- 有关ListBox控件的一些总结
- 有关软件开发中的一些想法
- 关于asp.net服务器控件的一些想法
- 北大青鸟ACCP5.0资料齐全
- 标记寄存器
- linux 下安装nginx经常出现 make[2]: Leaving directory `/usr/local/ssl' 或make[2]: Leaving directory `/usr/local/openssl' 找不到的情况解决方法
- cuda的教育意义之我见
- em登录报错:java.lang.Exception: Exception in sending
- 有关网格(Grid)控件的一些想法
- C#中timer类的用法
- POI教程
- MdiChildActivate在子窗体激活和关闭时都会触发,请问如何判断是激活时触发还是关闭时触发?
- 如何实现两窗口之间的数据传递接受
- GNUPLOT - 数理绘图小工具
- いたずら極悪 +イチャずら+かすたむアイドロイドAi 转区破解+界面汉化补丁
- 深入探索c/c++函数(3)---虚成员函数调用的基本过程
- Struts2上传文件时错误