




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在单文档中的使用方法步骤一初始化 在CView类的.h头文件中包含文件: #include Gridctrl.h并且手写加入如下的成员函数: CGridCtrl * m_pGridCtrl; 步骤二构造与析构 构造函数中: m_pGridCtrl = NULL;析构函数中:if(m_pGridCtrl)delete m_pGridCtrl;步骤三 如果需要打印功能的话添加同名打印函数代码在CView类的OnBeginPrinting()函数中添加如下代码:if(m_pGridCtrl)m_pGridCtrl-OnBeginPrinting(pDC,pInfo); /简单吧,这就是类的好处其它两个打印函数也一样的做法.步骤四 在OnInitaUpdate()函数中或者你自己添加的要显示Grid的消息函数中如下初始化: /创建非模式对话框 CDlg *dlg; dlg=new CDlg(); dlg-Create(IDD_Dlg,this); /初始化GridCtrl控件 if(m_pGridCtrl!=NULL) delete m_pGridCtrl; m_pGridCtrl=NULL; if (m_pGridCtrl = NULL) / Create the Gridctrl object m_pGridCtrl = new CGridCtrl; if (!m_pGridCtrl) return 0; / Create the Gridctrl window CRect rect; GetClientRect(rect); m_pGridCtrl-Create(rect, this, 100); / fill it up with stuff m_pGridCtrl-SetEditable(false); m_pGridCtrl-SetTextBkColor(RGB(0xFF, 0xFF, 0xE0); /黄色背景 m_pGridCtrl-EnableDragAndDrop(false); try m_pGridCtrl-SetRowCount(k); /设置行数为k行 m_pGridCtrl-SetColumnCount(4); /k列 m_pGridCtrl-SetFixedRowCount(1); /标题行为一行 m_pGridCtrl-SetFixedColumnCount(1); /同上 catch (CMemoryException* e) e-ReportError(); e-Delete(); return 0; /填充列标题 int row=0; for(int col=0;colSetItem(&Item); / fill rows/cols with text for (row = 1; row k; row+) for (col = 0; col h; col+) GV_ITEM Item; Item.mask = GVIF_TEXT|GVIF_FORMAT; Item.row = row; Item.col = col; if (col SetItem(&Item); m_pGridCtrl-AutoSize(); /-设置行列距- for(int a=1;aSetRowHeight(a,21); /设置各行高 m_pGridCtrl-SetRowHeight(0,24); /设置0行高 m_pGridCtrl-SetColumnWidth(1,110); /设置2列宽 m_pGridCtrl-SetColumnWidth(2,160); /设置3列宽 m_pGridCtrl-SetColumnWidth(3,100); /设置4列宽 上例取自实际工程,稍有修改!部分注释: void SetVirtualMode(TRUE)/设为虚模式BOOL SetRowCount(int nRows) /设置总的行数。BOOL SetFixedRowCount(int nFixedRows = 1)/设置固定的行数据BOOL SetColumnCount(int nCols) /设置列数BOOL SetFixedColumnCount(int nFixedCols = 1)/设置固定的列数步骤五: 添加WM_SIZE消息,调整控件的界面占屏幕大小if(m_pGridCtrl-GetSafeHWnd()CRect rect;GetClientRect(rect);m_pGridCtrl-MoveWindow(rect); 在对话框中的使用方法步骤一创建数据显示表格对话框在资源管理器中新创建一个对话框,假设为CDlgTestReportBox。 从工具箱中加入Custom Control,就是人头像的那个,将其区域拉伸至要显示数据表格的大小,充满整个对话框。在CDlgTestReportBox类的头文件中:#include GridCtrl.h 再定义成员变量:CGridCtrl* m_pGrid;添加OnShowWindow()消息处理函数如下:void CDlgTestReportBox:OnShowWindow(BOOL bShow, UINT nStatus) CDialog:OnShowWindow(bShow, nStatus); / TODO: Add your message handler code here if(m_pGrid!=NULL) delete m_pGrid; m_pGrid=NULL; if(m_pGrid=NULL) m_pGrid=new CGridCtrl; CRect rect; GetDlgItem(IDC_ReportAera)-GetWindowRect(rect); /得到显示区域 ScreenToClient(&rect); m_pGrid-Create(rect,this,100); m_pGrid-SetEditable(false); m_pGrid-SetTextBkColor(RGB(0xFF, 0xFF, 0xE0); /黄色背景 try m_pGrid-SetRowCount(10); /初始为10行 m_pGrid-SetColumnCount(11); /初始化为11列 m_pGrid-SetFixedRowCount(1); /表头为一行 m_pGrid-SetFixedColumnCount(1); /表头为一列 catch (CMemoryException* e) e-ReportError(); e-Delete(); / return FALSE; for (int row = 0; row GetRowCount(); row+) for (int col = 0; col GetColumnCount(); col+) /设置表格显示属性 GV_ITEM Item; Item.mask = GVIF_TEXT|GVIF_FORMAT; Item.row = row; Item.col = col; if(row=0&col=0) /第(0,0)格 Item.nFormat = DT_CENTER|DT_WORDBREAK; Item.szText.Format(_T(报表显示),col); else if (row 1) /设置0行表头显示 Item.nFormat = DT_CENTER|DT_WORDBREAK; Item.szText.Format(_T( 项目%d),col); else if (col 1) /设置0列表头显示 if(rowGetRowCount()-4) Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS; Item.szText.Format(_T(第%d次),row); else Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS; Item.szText.Format(_T(),2); m_pGrid-SetItem(&Item); m_pGrid-Invalidate(); /-设置行列距- for(int a=0;aGetRowCount();a+) m_pGrid-SetRowHeight(a,16); /设置各行高 m_pGrid-SetColumnWidth(0,58); /设置0列宽 for(int b=1;bGetColumnCount();b+) m_pGrid-SetColumnWidth(b,59); /设置各列宽步骤二嵌入上面的对话框 显示数据在你需要显示数据的对话框上的头文件中,假设为CDlgTest,加入#include GridCtrl.hCDlgTestReportBox* m_pTestReportBox;将数据显示对话框放入你的对话框相应位置上,在CDlgTest:OnInitDialog() 中: if(!m_pTestReportBox)m_pTestReportBox=new CDlgTestReportBox(this);m_pTestReportBox-Create(IDD_DlgTestReportBox,this);/定义区域变量CRect rectDraw;GetDlgItem(IDC_AeraReport)-GetWindowRect(rectDraw);ScreenToClient(&rectDraw); /动态测试数据显示区域rectDraw/将对应的对话框放到指定区域m_pTestReportBox-MoveWindow(rectDraw);m_pTestReportBox-ShowWindow(SW_SHOW);自定义填充数据的函数:CDlgTest:FillGrid() 如下:CGridCtrl* pGrid=m_pTestReportBox-m_pGrid;for (int row = pGrid-GetRowCount()-1; row = pGrid-GetRowCount()-3; row-) for (int col = 1; col GetColumnCount(); col+) GV_ITEM Item; Item.mask = GVIF_TEXT|GVIF_FORMAT; Item.row = row; Item.col = col; if(row=pGrid-GetRowCount()-3&col0) /平均值 if(col=10) Item.nFormat = DT_CENTER|DT_WORDBREAK; Item.szText.Format(_T( %6.2f ),avjch); else Item.nFormat = DT_CENTER|DT_WORDBREAK; I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年下沉市场消费金融场景化应用与行业变革分析报告
- 药品配送登记管理制度
- 药害事件检测管理制度
- 药店库房安全管理制度
- 药店药品储存管理制度
- 设备信息资料管理制度
- 设备夜班工作管理制度
- 设备拆除维修管理制度
- 设备检验维修管理制度
- 设备维护巡检管理制度
- 高压水除磷系统在柳钢热轧生产线上的使用和创新
- 医院保洁服务投标方案(完整技术标)
- 广东省深圳市宝安区2022-2023学年二年级下学期期末数学试卷
- 译林版英语八年级下册语法知识总结
- 幼儿园规范化幼儿园参评自评报告
- 光伏发电售后合同范本
- 《水资源管理》机考题库及答案开放大学考试题库 答案
- 菜鸟WMS(大宝)操作手册 (修复的)
- 东南亚艺术概论智慧树知到答案章节测试2023年云南艺术学院
- 卫生经济学智慧树知到答案章节测试2023年华中科技大学
- (完整版)食品安全自查、从业人员健康管理、进货查验记录、食品安全事故处置保证食品安全规章制度
评论
0/150
提交评论