需要实现的是将文本框中的文字输出到PICTUREBOX上,但是文本内容太多了,已经超出了PICTUREBOX高度的上限了,有没有什么其它的控件或方法来解决这个问题??用到PICTUREBOX主要是为了最后要得到位图再次进行操作~~~

解决方案 »

  1.   

    谢谢各位的参与。
    1\richtextbox不能作为图形啊!
    2\我的picturebox的高度已经是245745的最大值了,可是我需要的远不止这个数值,有没有办法突破
      

  2.   

    字体设小就看不清了,我不想实时输出,这样CPU的占用率高得吓人。机器的速度也就受到影响了~~~
    请各位再帮帮忙想想~~~
      

  3.   

    楼主设想一下,如果你的这个PICTURE大小已经达到极限,那么也就是说不能在一个屏幕中同时显示所有信息咯.这样的话,其实你需要显示的也只是当前屏幕中可以看到的部分.
    因此,你只要定义一个和屏幕一样大小的PICTURE就可以了,然后将当前要显示的部分文字贴上去,可以用textout这个API,定义如下:
    Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long问题的关键在于楼主的思路,不要想着一次性将所有内容全部加载,这样的话资源的占用也会成为一个大问题.
    设想一下,一个RPG游戏可不会一次性将整个地图全部加载在内存里吧,总是将需要的部分加载才是最好的.速度和资源都可以最好的利用到.
      

  4.   

    这样,当要向下翻页或者向上翻页的时候,也只需要将前一页或后一页的文字贴在picture上面就可以了.
      

  5.   

    有一个问题 TEXTOUT不能输出中文,必须使用PICTUREBOX的PRINT
      

  6.   

    有一个问题 TEXTOUT 不能输出中文,必须使用PICTUREBOX的PRINT
      

  7.   

    有一个问题 TEXTOUT 不能输出中文,必须使用PICTUREBOX的PRINT
    -----------------------
    谁说的,试试下面的代码:Dim s As Strings = "欢迎"TextOut Picture1.hdc, 20, 20, s, 4&记住中文是双字节字符,你肯定是Textout函数的最后一个参数设置错误。
      

  8.   

    非常感谢各位的参与,现在我已经做到了即时加载,可是效果是CPU的占用高得吓人,因为我想做到移动的效果,在CPU的频率很高的情况下,才可以忽略,如果CPU的频率不是很高的情况下,这样做的效果就像蜗牛一样在爬,呵呵。反之,如果将文字一次性的写到PICTURE上,再对PICTURE进行操作的话,速度就明显快N倍了。不知是我的方法有误还是思路不对,还请各位帮忙~~~~~~~~~~
    还有,我将文字显示出来就是直接用的PICTURE.PRINT,不知道这样与用TEXTOUT有没有很大的区别~~~
      

  9.   

    不知道可不可以这样想.. 在picturebox 中搞一个标签,把标签设置成自动换行,然后再用一个垂直的滚动条来来控制PictureBox中标签显示的内容,把你要显示的字输入到标签中, 如果标签中的字超过了PictureBox的高度,就滚动垂直滚动条.
      

  10.   

    谢谢,可是标签的高度的上限和PICTURE的一样啊。况且用这些的话还不能设置字距和行距~~~等待中~~~~~~~~