如题

解决方案 »

  1.   

    如果是txt,
    可以将其内容逐行或逐段读到字符串中,
    然后用Form或PictureBox控件的Print方法显示
    再使用窗口截屏功能保存到bmp文件也可以用VB调用Word.Application对象在Word里面打开相应txt或rtf文件,再将Word窗口截屏保存到bmp文件
      

  2.   

    rtf可以load到richedit中,再保存界面就差不多了。
      

  3.   

    我的想法就是将文本读进richtext后,通过获得文本框的hwnd,然后截屏再保存,就达到LZ的要求了
      

  4.   

    借鉴chenjl1031发表的文本框控件Text1中显示位图是可以的,这需要用API函数BitBlt将位图从Picture1复制到Text1中,要先建立DC。代码作修改:
    Option Explicit
        Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Long) As Long
        Private Declare Function ReleaseDC Lib "user32.dll" (ByVal hwnd As Long, ByVal hdc As Long) As Long
        Private Declare Function BitBlt Lib "gdi32.dll" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
        Private Const SRCCOPY As Long = &HCC0020Private Sub Command1_Click() '将TEXTBOX文本作为图象转到PICTUREBOX中
        Dim TextDC As Long
        Dim Wpic As Long, Hpic As Long
        Wpic = Picture1.Width
        Hpic = Picture1.Height
        '取得文本框DC
        TextDC = GetDC(Text1.hwnd)
        Call BitBlt(Picture1.hdc, 0, 0, Wpic, Hpic, TextDC, 0, 0, SRCCOPY)
    End SubPrivate Sub Form_Load()
        Picture1.Width = Text1.Width
        Picture1.Height = Text1.Height
        Text1 = " 不显示删除回复显示所有回复显示星级回复显示得分回复 VB 有没方法把rtf 或txt文本内容转成BMP图片"
    End Sub在上述代码PICTUREBOX获得图象后保存就相对简单了.
      

  5.   


    Private Sub Command1_Click()
       Dim iStr As String
       Picture1.AutoRedraw = True
       Open "c:\001.txt" For Input As #1
       While Not EOF(1)
          Line Input #1, iStr
          If Picture1.Width < Picture1.TextWidth(iStr) Then
             Picture1.Width = Picture1.TextWidth(iStr)
          End If
          Picture1.Height = Picture1.Height + Picture1.TextHeight(iStr)
          Picture1.Print iStr
       Wend
       Close #1
       Picture1.Move 0, 0
       SavePicture Picture1.Image, "c:\0000.bmp"
       
    End Sub