2007-08-28
DFL Printting!
关键字: print, printdialog将打印的代码从DWT,添加到DFL中,从而让DFL拥有打印的功能.
http://wiki.dprogramming.com/Dfl/Printting
DWT的打印写的一般,我添加的就更一般, 以后继续封装,先提供一个可以使用的版本.
1.PrintDocument 封装了打印机和打印文档,提供打印事件,供打印调用.
2.PrintDialog 打印对话框
3.PrintSetting 打印机设置
4.PrintEventArgs 在打印事件中调用的参数,包含执行具体打印的Graphics.
NEXT: 提供PrintPreview,PageSetting.
使用方法(Test on DMD1.020,XPsp2):
1.下载安装DFL http://www.dprogramming.com/dfl.php
2.将打印模块释放到DFL的目录下,覆盖原有的文件(winapi.d,all.d,makelib.bat),重新编译.
3.用examples目录下的Print.d测试.
又修改了,
1.让DFL支持中文字体了! 修改了不支持unicode的windows函数。
2.添加了转换函数:GDI仍然使用像素单位,打印自己使用毫米单位。
- auto f5 = new Font("仿宋_GB2312", 14.0F,FontStyle.BOLD,GraphicsUnit.MILLIMETER,GB2312_CHARSET,FontSmoothing.DEFAULT); //
- auto f6 = new Font("隶书", 16.0F,FontStyle.BOLD,GraphicsUnit.MILLIMETER);
- auto f7 = new Font("宋体", 18.0F,FontStyle.BOLD,GraphicsUnit.MILLIMETER);
- auto f8 = new Font("华文新魏", 20.0F,FontStyle.BOLD,GraphicsUnit.MILLIMETER);
- auto f9 = new Font("楷体_GB2312", 26.0F,FontStyle.BOLD,GraphicsUnit.MILLIMETER);
- Color co = Color(0, 0, 0);
- Graphics gc= pea.graphics;
- //prd: A4
- int x,y,w,h;
- x = 12;
- y = 10;
- w = 230;
- h = cast(int)f5.getSize(GraphicsUnit.MILLIMETER);
- gc.drawText("Hello 中文"~f5.name(), f5, co, prd.mrTpr(Rect(x,y, w,h)) );
- y = y + h;
- h = cast(int)f6.getSize(GraphicsUnit.MILLIMETER);
- gc.drawText("Hello 中文"~f6.name(), f6, co, prd.mrTpr(Rect(x,y, w,h)) );
- y = y + h;
- h = cast(int)f7.getSize(GraphicsUnit.MILLIMETER);
- gc.drawText("Hello 中文"~f7.name(), f7, co, prd.mrTpr(Rect(x,y, w,h)) );
- y = y + h;
- h = cast(int)f8.getSize(GraphicsUnit.MILLIMETER);
- gc.drawText("Hello 中文"~f8.name(), f8, co, prd.mrTpr(Rect(x,y, w,h)) );
- y = y + h;
- h = cast(int)f9.size();
- gc.drawText("Hello 中文"~f9.name(), f9, co, prd.mrTpr(Rect(x,y, w,h)) );
- pea.HasMorePages =false;
评论
ideage
2007-09-07
DFL Printting更新了,包含了DFL,解压就可以使用OK!
ideage
2007-08-29
harmonia的确很不错,代码结构一流.在作者的map没有print,有空把打印也抄过去.
DFL主要是自己用.XML方言不错,但对于现在的程序,还是不普及吧.而且,开发一个小程序,用那么多XUL,XAML,累啊.
DFL主要是自己用.XML方言不错,但对于现在的程序,还是不普及吧.而且,开发一个小程序,用那么多XUL,XAML,累啊.
sofire
2007-08-29
只会写简单的QT版 HelloWorld。
前段时间,看过几天,就再没有深入了。
实在是讨厌C++的申明、实现分开的方式。
要是QT转行用D语言开发,我马上去学它。
:)
前段时间,看过几天,就再没有深入了。
实在是讨厌C++的申明、实现分开的方式。
要是QT转行用D语言开发,我马上去学它。
:)
oldrev
2007-08-29
描述界面可以用一个XML的方言来实现,Mozilla 的 XUL,MS 的 XAML 都是如此。
DFL的网站上似乎说作者在搞GTK的DFL,不过我看不大能成,DFL完全就是为Windows设计的。
GTK和QT我很不喜欢,界面是自己画的,比起 wx 的 native look & feel 要差一些,最好是有交集的控件就用本地的,没有再自画。
看来还是得要用D开发一个OS才顺眼

DFL的网站上似乎说作者在搞GTK的DFL,不过我看不大能成,DFL完全就是为Windows设计的。
GTK和QT我很不喜欢,界面是自己画的,比起 wx 的 native look & feel 要差一些,最好是有交集的控件就用本地的,没有再自画。
看来还是得要用D开发一个OS才顺眼
DavidL
2007-08-28
嗯,不错,有没有人研究QT,虽然调用WINE是一个方法,不过总感觉似乎没有一个本地的实现好,我们这个圈子如果有人熟X的话搞个DFL linux版应该很不错
之前很喜欢harmonia的。以前大致想利用harmonia做浏览器。不过现在我发现其实HTML是个错误的选择。一个不完整的HTML文档(HTML传输过程中)的动态渲染实际上很容易变得buggy,HTML的架构根本不适合做这个事,HTML的描述是静态的并且时期望完整的描述,一个不对称的标签就可以引起很多乱七八糟的问题,前一段时间,一个CSS设置就让IE崩溃了。。把HTML融合到GUI的确有待商榷。或许有一天人们淘汰HTML了呢。
之前很喜欢harmonia的。以前大致想利用harmonia做浏览器。不过现在我发现其实HTML是个错误的选择。一个不完整的HTML文档(HTML传输过程中)的动态渲染实际上很容易变得buggy,HTML的架构根本不适合做这个事,HTML的描述是静态的并且时期望完整的描述,一个不对称的标签就可以引起很多乱七八糟的问题,前一段时间,一个CSS设置就让IE崩溃了。。把HTML融合到GUI的确有待商榷。或许有一天人们淘汰HTML了呢。
发表评论
- 浏览: 112848 次

- 详细资料
搜索本博客
最新评论
-
ANSI和Unicode练习后记
要在dfl的listview控件里显示来自mysql的中文字符。 怎么出错了,提 ...
-- by wandernet -
D语言设计模式 Observer
好文!学习
-- by hqs7636 -
ANSI和Unicode练习后记
新年快乐!
-- by oldrev -
ANSI和Unicode练习后记
支持一个!新年快乐!
-- by DavidL -
D语言的IOCP(完成端口) ...
"iocp的使用例子(哪怕是C方式的)在dsource上都找不到一个,仅此一条i ...
-- by ahadf






评论排行榜