今天第二个:如何在画布上显示完整的一篇文章?(50分)

  • 主题发起人 主题发起人 Nutty
  • 开始时间 开始时间
N

Nutty

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在画布上显示完整的一篇文章?

今天第二个问题了,再这样下去我就要去讨饭了
 
Canvas.TextOut
只能通过计算字体高度,一行行画了。
 
用 api 的 DrawText, 里面有个参数可以控制换行,
如果你的 canvas 的容器不够大, 就会看不到全部。
是不是还要处理这个呀?
 
你的文章是不是很长?
或者有多行而在画布上放不下?
选用小字体?滚动(前面有讨论)?
 
DreamTiger:
字体高度怎么计算?

SuperMMX:
具体怎么做? 我不懂这个函数, 试试看吧.

g622:
没错, 一屏是放不下的, 要用很大的汉字显示(初号字或更大)
论坛里的文章用的方法 如scrollby, 只能滚动一屏
 
为什么非得画到 canvas 呢?这是另一个问题了,

A 是你的文章,Rect 是一个区域。

DrawText(aCanvas.Handle,PChar(A),StrLen(PChar(A)),Rect,DT_WORDBREAK);

要处理大文章,重新把后面的文章画一遍,呵呵,不是个好主意。
 
我有一个绝妙办法,
在窗体中加入一个Memo控件,将颜色设为窗体背景色,
然后用LoadFromFile()写入文章,
效果与在Canvas中显示机文字一样,
但很好控制。
OK否?
 
不行......

因为接下来要进行directdraw相关特效的设计, 瞒天过不了海的^-__-^

还有办法吗?
 
我记得Another_eyes兄有好见地, 只不过他没有详细说明, 对我这样的菜鸟来说
那篇大作太深奥了
 
唉,没有办法了吗?
只好用stream了?
 
读入文本,动态写入画板中。
用滚动框加textout或textrect也可以
文本长时可以滚动,而且字体颜色可改动
 
已解决......

其实不算解决, 本来是打算可以处理word文档的, 但是这当然需要该死开恩,
或天才共享的控件, 否则真是@$%@#%#$@^$&^

谢谢各位的帮忙, 以后也请不吝赐教!!!
 
后退
顶部