早上看到Pvistely同学在说设计器编程的一些问题,想起来我也曾使用GDI+做过一个报表设计器的原型。刚才翻到了代码,居然已经是整整一年前的东西了,时间过的可真是快啊。当时产品里计划要提供可视化报表设计功能,于是part-time了两个周,做了这么一个原型给Team做方案评估。

从Demo的效果来看,大家觉得使用GDI+做一个预想的报表的设计器应该没有什么太大问题,只是后来这个功能整个没有通过feature design而作罢了。程序运行效果如图:


    本demo实现features如下:
    1、完全的自定义控件支持;
    2、Drag&Drop方式添加控件到容器中;
    3、多控件选取支持;
    4、多控件移动支持;
    5、Z-Order支持;
    6、标签控件编辑(double click);
    7、Image控件图片载入;
    8、8方向resize控件;
    9、无限级zoom设计器和控件。

当然问题也很多,毕竟这只是一个demo。其中主要的问题有:
    1、没有作绘图优化,OnPaint里直接绘制所有的对象;
    2、Zoom后resize功能有bug,比例计算有问题;
    3、Redo & Undo,Copy & Paste未实现;
    4、没有实现容器的无限区域滚动支持。

虽然公开源码,但不得不说这是一个没有经过太多推敲的设计,它只是给出了一种设计的思路和实现。如果您能在以后设计中避免其中的问题和不足,我的希望就达到了。如果这个demo能对你有任何一小点的帮助,那将是我所乐见的。欢迎对设计器编程感兴趣的博友不吝赐教

源代码下载

转载于:https://www.cnblogs.com/birdshome/archive/2005/09/20/ReportDesigner.html

GDI+绘制的一个Report Designer原型相关推荐

  1. GDI绘制时钟效果,与系统时间保持同步,基于Winform

    2019独角兽企业重金招聘Python工程师标准>>> 这是直接在Winform的基础上进行绘制的.接下来,我对时钟进行了封装,封装成一个名为CSharpQuartz的类,效果如下: ...

  2. C# 数据库系统中使用GDI+绘制柱状图

    在C#+SQL Server数据库做系统中,通常需要对数据库中的数据进行绘制图形报表方便经理查看,虽然有很多实用的水晶报表控件和图表控件实现该功能,但我还是想讲讲如何使用GDI绘制简单的柱状图.(推荐 ...

  3. MFC+GDI+绘制出雷达余晖效果

    MFC+GDI+绘制出雷达余晖效果 1.首先要画出静态的坐标轴,用双缓冲方法在onpain消息中绘制.绘制方法都比较简单.声明一个内存DC,绘制一个圆形,再把坐标轴画上去. void CDlg_Rad ...

  4. Windows平台RTMP|RTSP播放器为什么要兼容GDI绘制

    为什么要支持GDI 先说结论,Windows平台播放渲染这块,一般来说99%以上的机器都是支持D3D的,实现GDI模式绘制,除了为了好的兼容性外,在远程连接的场景下,D3D创建不成功,需要使用GDI模 ...

  5. 使用GDI+绘制高质量图和字体(2)

    还记得前段时间的一篇文章写了"使用GDI+绘制高质量图和字体",里面用到了SmoothingMode.HighQuality,CompositingQuality.HighQual ...

  6. 椭圆形印章核心算法浅析及使用GDI+绘制椭圆印章的方法

    1. 引言 几年前,笔者在做某项目时,需要根据开票方的实际信息(含企业名称,社会信用代码,印章编号)绘制某椭圆形的专用章,加盖到PDF版式文件上,并使用开票方的证书信息进行签名,以防范版式文件伪造.抵 ...

  7. D2D引擎与GDI\GDI+绘制效果对比

    本例主要是对比D2D和GDI在绘制文字.线条的区别,以及D2D与GDI+在绘制图片时的区别. D2D是基于COM组件开发的,使用前的CoInitialize(NULL)是必须的:另外,GDI+的初始化 ...

  8. 在VC中用GDI+绘制角度可变的颜色渐变效果-.NET教程,VB.Net语言[转]

    在VC中用GDI+绘制角度可变的颜色渐变效果-.NET教程,VB.Net语言 作者:网友供稿 点击:4 gdi+ 是gdi(windows 早期版本提供的图形设备接口)的后续版本,是microsoft ...

  9. Pentaho Report Designer 教程(一)初识

    软件版本 Pentaho Report Designer 5.0.1-stable 一.Pentaho Report Designer 的安装 Pentaho Report Designer(PRD) ...

最新文章

  1. R语言编写自定义描述统计计算函数、使用doBy包的summaryBy函数计算不同分组(group)的描述性统计值(Descriptive statistics by group、样本个数、均值、标准)
  2. HADOOP常见错误
  3. Linux Priority VS Nice
  4. *27.硬实时和软实时
  5. 从零开始入门 K8s | Kubernetes 调度和资源管理
  6. 亿级流量场景下的平滑扩容:TDSQL的水平扩容方案实践
  7. 回溯法解决工作分配问题及分析
  8. DHCP***的防御处理总结
  9. c# mysql 封装_C#简单通用的数据库连接封装
  10. ajax,jsonp,axios面试题
  11. 决定创业失败的除了团队外
  12. 20-21-2网络管理quiz1
  13. python循环语句打印矩形_pycharm软件python的一些循环语句的用法
  14. 跨平台日志清理工具 Log-Cutter v2.0.1 RC-1 发布
  15. 【语音隐写】基于matlab LSB语音隐藏【含Matlab源码 431期】
  16. pyspark调用spark以及执行带in语句参数的hql示例
  17. 数字抽奖小程序_两款火爆的抽奖小程序,最高抽2000元现金红包 亲测提现8.59元秒到...
  18. 程序集版本号,文件版本号及发布版本号管理
  19. 微信小程序-菜谱APP
  20. java中如何输入字符

热门文章

  1. 安全研究员俩娃徒手绕过 Linux Mint 屏保和密码,并成功访问桌面
  2. 关于CVE-2020-14882,你需要知道的都在这里
  3. 黑客可利用 TeamViewer 缺陷远程窃取系统密码
  4. RecyclerView之自定义LayoutManager和SnapHelper
  5. 武汉区块链软件技术公司区块链将如何应用于会员生态系统?
  6. 2018.11.05-4028-撸串(string)
  7. 论坛模块_版块管理_增删改查实现上下移动
  8. gdb 初步学习记录
  9. android与服务器交互总结(json,post,xUtils,Volley)
  10. MySQL服务器安装完之后如何调节性能