时间:2014-12-09 来源:

MFCGridcontrol2.27【移动开发】

MFC Grid control author:songyanwu

接下来看看强大的友好界面:

链接地址

gridctrl.cpp, gridcellbase.h Main grid cell base class. gridcell.cpp, InPlaceEdit.h In-place edit windows source and header files. GridDropTarget.cpp, Titletip.h Titletips for cells, and allows you to specify either a callback funtion or message handler that the grid will call each time it needs information on a cell. This saves enourmously on memory at the expense of slightly decreased performance. There is a GVN_ODCACHEHINT message that is sent to the grid's parent that will help you cache data in preparation for the grid's cell info requests.

There are two main types of cell - fixed and non-fixed. Fixed cells are typically on the left and top of the grid and do not move when the grid is scrolled. Typically these contain column and row headings and are not editable. Non fixed cells make up the "interior" of the grid and can be edited and selected.

下面是我自己对源码的简单实用效果:

Grid control 属性和Execl 很相似, perform operations such as drawing, and will pass on certain mouse messages if it considers it necessary. The grid also contains a drag and drop target (CGridDropTarget) that is registered to handle drop notifications, so all operations on large numbers of cells should be done row-by-row as well.

Cell selection using the mouse, columns or both. Auto row or column sizing when dividers are double-clicked. Any number of fixed rows and columns. Individual cells can have separate text and background colours. Individual cells can have separate fonts. Individual cells can be marked "Read-Only", Ctrl-X and Ctrl-V perform clipboard copy, and Ctrl-A for "Select All"In place editing of cell contents. If a character key is pressed while a cell has focus, and the arrow keys will allow navigation to other keys. If the current focus cell is clicked on, for either a Doc/View environment (inc Print preview) or a standalone dialog based app (no print preview).Optional "List mode", single row selection, 5.0, except for the font property. Each cell holds a pointer to a font structure, fixed columns, and cells that are both fixed rows and columns cells. Thus in order to set a default property for the grid, then set it's values directly.

Files To use the Grid control in your project you will need to add a number of files to your project:

接下来 也看看结构实现:

The grid cells can be of any type as long as the class is derived from CGridBaseCell. Included with the package is aCGridCell class that handles basic data storage and editing. Extensions such as theCGridCellCombo and CGridURLCell class demonstrate how to create your own cell classes.

前面属性的介绍已近很是强大了吧! 接下来说说在使用源码过程中应该注意的问题 1  Memdc.h 中定义的类 CMemDC 需要重新改变个 名称  GCMemDC 或者 其他也行web外包,CMemDC 这个类微软进行了封装,web外包所以重名了. 2 还应该对控件类实例化 (不过人家也做好了网页切图制作,当然你自己也可以申明对象进行注册. 下面展现我的代码实现. 1 添加头文件 #include "GridCtrl.h" 2 进行声明与绑定  声明:CGridCtrl m_pGrid; 绑定控件: // GridCtrlDemoDlg.h : 头文件 // #pragma once #include "gridctrl.h" // CGridCtrlDemoDlg 对话框 class CGridCtrlDemoDlg : public CDialogEx { // 构造 public: CGridCtrlDemoDlg(CWnd* pParent = NULL); // 标准构造函数 CGridCtrl m_pGrid; // 对话框数据 enum { IDD = IDD_GRIDCTRLDEMO_DIALOG }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 实现 protected: HICON m_hIcon; CImageList m_ImageList; // 生成的消息映射函数 virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, 0xFF,45); //设置各行高 m_Grid.SetColumnWidth(0,84); //设置各列宽 if(row==0&&col==0) //第(0,col); } else if (row < 1) //设置0行表头显示 { Item.nFormat = DT_CENTER|DT_WORDBREAK; Item.strText.Format(_T(" 定值%d"),row); } } else { Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS; Item.strText.Format(_T(""),2); } m_Grid.SetItem(&Item); } } 那么这几步做完以后,网页重构报价那么就是我上面的效果了哈! 我接下来也会将Chris Maunder 代码封装成dll 更方便快捷的使用了承接网站前端,如果你在使用或其他问题希望我们可以共同沟通学习. 特别注意点: 我添加GridCtrl_src下文件后,承接网站前端VS2010编译报错: gridctrltest\memdc.h(26): error C2011: “CMemDC”:“class”类型重定义  我认为微软已经实现了他们自己的CMemDC 类库psd切图html,记得同时修改MemDC.h及GridCtrl.cpp所有用到的CMemDC项.  那么请看我前面提到的注意点即可解决!  

点击次数:8095
作者:
web前端行业资讯
Web new NewsList
英特尔宣布与法拉利跨界合作欲将AI技术用于赛车运动 ,,2018年01月11日甲骨文服务器出漏洞:攻击者用漏洞挖矿获取加密货币 ,,2018年01月11日用深度学习设计图像视频压缩算法:更简洁、更强大 ,,2018年01月11日Ubuntu内核和NVIDIA更新:修复Meltdown和Spectre两处漏洞 ,,2018年01月11日AntDesign3.1.1发布,阿里企业级UI设计语言 ,,2018年01月11日微信「跳一跳」带火小游戏,开发者如何快速上手? ,,2018年01月11日谷歌公布最新安卓系统份额:你用上奥利奥了么? ,,2018年01月11日腾讯开发出“3D音效”算法:普通耳机实现3D实时语音效果 ,,2018年01月11日谷歌工程师点赞中国程序员实现Node.js启动超4倍提速 ,,2018年01月11日三星电子总裁兼CE部门负责人金炫奭:万物互联时代到来 ,,2018年01月11日NVIDIA和大众合作建立智能驾驶助手 ,,2018年01月11日GIMPS项目报告发现已知最大素数 ,,2018年01月11日微软与生物技术公司开展AI驱动的血液检测同时诊断数十种疾病 ,,2018年01月11日微软跨平台移动开发工具套件HockeyApp宣布免费 ,,2018年01月11日《硅谷》里神乎其神的压缩技术,AI正在一点点做出来 ,,2018年01月11日LinuxMint19代号敲定为“Tara”预计2018年5月至6月期间发布 ,,2018年01月11日Facebook发布wav2letter工具包,用于端到端自动语音识别 ,,2018年01月11日开源数据库ArangoDB正进行约1156万美元股权融资 ,,2018年01月11日IntelCPU漏洞闹大:腾讯云紧急升级 ,,2018年01月11日2018年1月全球数据库排名:Redis夺回第八 ,,2018年01月11日Lyft将联手无人驾驶公司于CES上展示无人驾驶汽车 ,,2018年01月11日京东X无人超市首家社会门店开业:刷脸进、微信自动结算 ,,2018年01月11日担心被AI取代是杞人忧天?高晓松跨年演讲说的有几分对 ,,2018年01月11日免费授权技术许可Intel宣布在未来CPU中集成雷电3 ,,2018年01月11日算法决定你在社交媒体上看到的信息 ,,2018年01月11日谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日poj2431(优先队列)【编程语言】2015年02月11日商用公有云安全调研 【移动开发】2015年06月11日linux设置程序开机启动 【编程语言】2015年07月27日安卓系统API的使用 【移动开发】2015年08月29日制作PPT的过程2014年01月28日python操作azure虚拟机 【移动开发】2015年04月24日C++派生类与基类的转换规则2014年01月30日基于Struts开发的入门级应用Helloworld 【移动开发】2014年12月01日SPAN元素和DIV元素有的区别2014年01月29日iOSxcode6.0使用7.1运行程序iphone5上下有黑条 【编程语言】2015年04月27日Hibernate系列-Hibernate原理【移动开发】2015年07月23日O-blog漏洞暴光2014年01月29日android之文件下载 【编程语言】2015年05月20日Effectivejava经验之谈,通用方法 【编程语言】2015年04月17日读“学习英语的方法”有感【数据库】2015年06月24日学习Python大数据处理模块Pandas 【综合】2015年02月11日OC语言疯狂讲义学习笔记2015年06月02日数据结构之---C语言实现括号匹配(栈实现)【综合】2015年09月14日从UnrealEngine3到UnrealEngine4 【编程语言】2015年07月09日UVa140带宽 【互联网】2015年03月09日js实现单向链表 【编程语言】2015年05月28日UI_模态页面跳转 【编程语言】2015年07月13日BC2015年百度之星程序设计大赛-初赛(1)(KPI-主席树)【编程语言】2015年06月05日算法学习之循环和递归 【移动开发】2015年06月24日LinQ快速入门 【编程语言】2014年11月26日YUI3.5.0PR4发布 ,,2016年06月23日LightOJ1132-SummingupPowers矩阵快速幂+排列组合 【编程语言】2015年07月14日使用UglifyJS合并压缩JavaScript的方法2014年01月29日C++四种类型转换操作符 【移动开发】2015年05月19日纯CSS绘制三角形(各种角度)2014年01月29日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)