MFC GridControl 控件使用(2)
2016-05-23 15:23
302 查看
由于原有的Gridcontrol 不是我想要的结果,我需要对它进行一些处理
添加OnGridInit()函数:
void CSAMPLEDlg::GridCtrlInit()
{
m_pGrid.SetRowCount(9); //初始为10行/ 设定总共的行数
m_pGrid.SetColumnCount(13); //初始化为11列 / 设定总共的列数
m_pGrid.SetFixedRowCount(1); //表头为一行
m_pGrid.SetFixedColumnCount(1); //表头为一列
for (int row = 0; row < m_pGrid.GetRowCount(); row++) //行
for (int col = 0; col < m_pGrid.GetColumnCount(); col++) //列
{
//设置表格显示属性
GV_ITEM Item;
Item.mask = GVIF_TEXT | GVIF_FORMAT;
Item.row = row;
Item.col = col;
m_pGrid.SetRowHeight(0, 30); //设置0列高
m_pGrid.SetRowHeight(row,72); //设置各行高
m_pGrid.SetColumnWidth(0, 30); //设置0列宽
m_pGrid.SetColumnWidth(col, 86); //设置各列宽
//本想用循环来设置,但是直接设置行头更方便
m_pGrid.SetItemText(1, 0, _T("A"));
// SetItemText 用来设定某行某列的具体文本数值
m_pGrid.SetItemText(2, 0, _T("B"));
m_pGrid.SetItemText(3, 0, _T("C"));
m_pGrid.SetItemText(4, 0, _T("D"));
m_pGrid.SetItemText(5, 0, _T("E"));
m_pGrid.SetItemText(6, 0, _T("F"));
m_pGrid.SetItemText(7, 0, _T("G"));
m_pGrid.SetItemText(8, 0, _T("H"));
if (row == 0 && col == 0) //第(0,0)格
{
Item.nFormat = DT_CENTER | DT_WORDBREAK;
Item.strText.Format(_T(" "), col);
}
else if (row < 1) //设置0行表头显示
{
Item.nFormat = DT_CENTER | DT_VCENTER
| DT_SINGLELINE | DT_END_ELLIPSIS
| DT_NOPREFIX | DT_WORDBREAK;
Item.strText.Format(_T(" %d"), col);
}
else
{//:居中显示 垂直居中显示 单行显示 显示的字符串,结束的字符串的范围不在矩形内会被截断并以省略号标
Item.nFormat = DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS;
Item.strText.Format(_T(""), row);
}// DT_WORDBREAK:当一行中的字符将会延伸到由lpRect指定的矩形的边框时,此行自动地在字之间换行
m_pGrid.SetItem(&Item);
}
}
我想要对GridControl进行一些处理
1.单击item对其设置想要的字符串,但是屏蔽双击效果
2.点击行头或者列头 可以设置一整行或者一阵列内容
3.屏蔽掉鼠标移动到item上 的提示效果
4.点击item上面的内容 序号依次增加效果
5.单击按键 设置整个item,也可以全部清除
6.保存到数据库中
添加函数:
//单击item 设置内容
void CSAMPLEDlg::OnGridClick(NMHDR *pNotifyStruct, LRESULT* /*pResult*/);
添加OnGridInit()函数:
void CSAMPLEDlg::GridCtrlInit()
{
m_pGrid.SetRowCount(9); //初始为10行/ 设定总共的行数
m_pGrid.SetColumnCount(13); //初始化为11列 / 设定总共的列数
m_pGrid.SetFixedRowCount(1); //表头为一行
m_pGrid.SetFixedColumnCount(1); //表头为一列
for (int row = 0; row < m_pGrid.GetRowCount(); row++) //行
for (int col = 0; col < m_pGrid.GetColumnCount(); col++) //列
{
//设置表格显示属性
GV_ITEM Item;
Item.mask = GVIF_TEXT | GVIF_FORMAT;
Item.row = row;
Item.col = col;
m_pGrid.SetRowHeight(0, 30); //设置0列高
m_pGrid.SetRowHeight(row,72); //设置各行高
m_pGrid.SetColumnWidth(0, 30); //设置0列宽
m_pGrid.SetColumnWidth(col, 86); //设置各列宽
//本想用循环来设置,但是直接设置行头更方便
m_pGrid.SetItemText(1, 0, _T("A"));
// SetItemText 用来设定某行某列的具体文本数值
m_pGrid.SetItemText(2, 0, _T("B"));
m_pGrid.SetItemText(3, 0, _T("C"));
m_pGrid.SetItemText(4, 0, _T("D"));
m_pGrid.SetItemText(5, 0, _T("E"));
m_pGrid.SetItemText(6, 0, _T("F"));
m_pGrid.SetItemText(7, 0, _T("G"));
m_pGrid.SetItemText(8, 0, _T("H"));
if (row == 0 && col == 0) //第(0,0)格
{
Item.nFormat = DT_CENTER | DT_WORDBREAK;
Item.strText.Format(_T(" "), col);
}
else if (row < 1) //设置0行表头显示
{
Item.nFormat = DT_CENTER | DT_VCENTER
| DT_SINGLELINE | DT_END_ELLIPSIS
| DT_NOPREFIX | DT_WORDBREAK;
Item.strText.Format(_T(" %d"), col);
}
else
{//:居中显示 垂直居中显示 单行显示 显示的字符串,结束的字符串的范围不在矩形内会被截断并以省略号标
Item.nFormat = DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS;
Item.strText.Format(_T(""), row);
}// DT_WORDBREAK:当一行中的字符将会延伸到由lpRect指定的矩形的边框时,此行自动地在字之间换行
m_pGrid.SetItem(&Item);
}
}
我想要对GridControl进行一些处理
1.单击item对其设置想要的字符串,但是屏蔽双击效果
2.点击行头或者列头 可以设置一整行或者一阵列内容
3.屏蔽掉鼠标移动到item上 的提示效果
4.点击item上面的内容 序号依次增加效果
5.单击按键 设置整个item,也可以全部清除
6.保存到数据库中
添加函数:
//单击item 设置内容
void CSAMPLEDlg::OnGridClick(NMHDR *pNotifyStruct, LRESULT* /*pResult*/);
相关文章推荐
- VLC和WebRTC等开源库关于硬解软解的策略
- 【日常笔记】mybatis 处理 in 语句的使用
- 设置UINavigation的背景图片和背景颜色
- java中文乱码解决之道(7):JSP页面编码过程
- 高并发金融应用架构优化与平台创新
- iOS开发-数据存储NSCoder
- leetcode 350 Intersection of Two Arrays II C++
- 谷歌三篇论文之三---BigTable
- vs2015加载符号慢,解决办法
- 保证某个IP优先处理.的QOS
- postman 插件安装
- 数据结构和算法 – 6.构建字典: DictionaryBase 类和 SortedList 类
- binder 回顾
- Fragment的状态丢失
- 使用Nginx负载均衡
- Android 全屏显示
- 11. php的错误和异常处理(一)
- Android自助餐之自定义控件(一)从layout自定义控件
- 谷歌三篇论文之一---GFS
- 推荐算法:基本技术