(讨论)打印排版方法,进来有分(准备放1000分) 大家打印的时候是怎样排版的?先说一下我的:我要打印文字、横线、表格,表格中含文字,要考虑到表格单元的宽度不够打印文字时,要自动分行打印,同时表格单元的高度要变化了,对了还有分页,我一下也表达不清楚,听听大家的讨论吧。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 太复杂了,涉及的问题已经超过了程序语言本身。曾经想开发一个“XWord”,不过已经两个月没有动作了。推一把,等着看好戏。 只有自己亲自画了。根据你的页面大小设置表格的大小,然后用DC的MoveTo、LineTo方法去画出表格。 要自动分行的话,可以先算出你表格的宽度,然后用用CSize textSize=pDC->GetTextExtent(CString);得到该字符串占用的大小,用它和你的表格相比较,若是大了,再用MoveTo跳到下一行即可分行。 分页也相同,根据你的设置,若表格大于你的页面大小,调用DC的方法开始新的一页即可。 hufeng2000(飞扬)说的我也知道,可是我现在说的主要是自动排版的问题。说我的,我做了一个表格类,设置好坐标、行数、列数、行宽、列宽、每个单元的文字后,用它的一个方法,传一个DC给它,让它将自己打出来,我的打印过程中只需要依次调用各个对象的方法,即可将它们一一打出来。现在表格单元的文字需要能自动换行,就是说表格单元的高度是动态的,当然一个表格的高度变化,会影响到其它表格的位置,当然还有单独的文字和横线。我想听听大家解决具体问题的方法和经验,非常谢谢各位捧场!!!每人都会有分的。呵呵,大家别误会了,我不是用分来吸引大家,只是一点小小意思回报大家的热情。 这是设计模式的问题,也就是类的划分和相互关系等问题,目的是复用、可理解、可扩展,看看设计模式一书的composite flyweight .只借鉴思路,不要照搬。 各个对象都做成COM组件,参考WORD 不用com,com的设计针对不是这种小问题,如果用Com,干脆用面向com编程好了,c#就是这个意思,有点做过头了,个人认为。不用1000分,有500分我用rose给你做个设计,大家讨论讨论就可以,其实这才是进阶的问题。 至于word,你可以单独使用其中的com对象吗,我看microsoft不见到在内部也是com的调用方式,而是外面给提供了个com接口, 叫你玩的,内部不一定。 我觉得这个问题在打印和设计上都需要,首先是作图,另外就是怎么组织各个对象了,还有就是需求了,我觉得好象很难找到平衡。CaptainIII(山上人) 的提议很好,但我现在可能会很难做到(否则就不是两颗星了),我会记住和慢慢学习的。bojinyu(沙鱼) ,我现在不做成COM都这么困难,:) CaptainIII(山上人) 厉害,虚心受教。 ListCtrl 无法显示图标 应用程序ICON替换的问题 VS2005不能开发shell扩展程序吗? 关于图像识别的问题 请问如何设置通过\\ip访问其它机器的超时时间? 帮忙解释一句语句 连开5帖,紧急求:win2k下,怎么把CMOS里的数据写到文件里,尽量细点,我是菜鸟。 怎么抓QQ的数据包,我想用VC写个QQ终端 谁能告诉我“准确”的ActiveX,COM,COM+,OLE的定义以及区别?不胜感谢~ 如何使用微软提供的日历控件啊??一定给分~~~ 急!!谁用过ODBC的SQLBulkOperations ?? 为什么大部分贴子都提示“找不到此页”?
曾经想开发一个“XWord”,不过已经两个月没有动作了。推一把,等着看好戏。
要自动分行的话,可以先算出你表格的宽度,然后用用
CSize textSize=pDC->GetTextExtent(CString);得到该字符串占用的大小,用它和你的表格相比较,若是大了,再用MoveTo跳到下一行即可分行。
分页也相同,根据你的设置,若表格大于你的页面大小,调用DC的方法开始新的一页即可。
说我的,我做了一个表格类,设置好坐标、行数、列数、行宽、列宽、每个单元的文字后,用它的一个方法,传一个DC给它,让它将自己打出来,我的打印过程中只需要依次调用各个对象的方法,即可将它们一一打出来。现在表格单元的文字需要能自动换行,就是说表格单元的高度是动态的,当然一个表格的高度变化,会影响到其它表格的位置,当然还有单独的文字和横线。
我想听听大家解决具体问题的方法和经验,非常谢谢各位捧场!!!
每人都会有分的。呵呵,大家别误会了,我不是用分来吸引大家,只是一点小小意思回报大家的热情。
CaptainIII(山上人) 的提议很好,但我现在可能会很难做到(否则就不是两颗星了),我会记住和慢慢学习的。
bojinyu(沙鱼) ,我现在不做成COM都这么困难,:)