I have written a program that reads a text file and then saves it as an image file.Although the program is reading the file but its having errors saving it as an image file. Please Help!

Option Explicit

Private Const SRCCOPY = &HCC0020
Private Const MERGEPAINT = &HBB0226
Private Const SRCAND = &H8800C6
Private Const DIB_RGB_COLORS = 0
Private Const DIB_PAL_COLORS = 1

Private Declare Function BitBlt Lib "gdi32" _
  (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

Dim nRet As Long
Private Sub Command1_Click()
'Outline:- Asks the user for a file.
'- Reads all the data into Text1.

Dim FilePath As String
Dim Data As String

FilePath = InputBox("Enter the path for a text file", "The Two R's", _
"D:\address.txt")
'Asks the user for some input via an inp
' ut box.

Open FilePath For Input As #1
'Opens the file given by the user.

Do Until EOF(1)
'Does this loop until ' f>End Of File(' >EOF) for file number 1.
Line Input #1, Data
'Read one line and puts it into the vari
' ble Data.
Text1.Text = Text1.Text & vbCrLf & Data
'Adds the read line into Text1.
MsgBox EOF(1)
Loop

Close #1
'Closes this file.
End Sub

Private Sub Command2_Click()

  pic.Visible = True
  pic.Height = Text1.Height
  pic.Width = Text1.Width

nRet = BitBlt(pic.hDC, 0, 0, Text1.Width - 2, Text1.Height - 2, Me.hDC, Text1.Left + 1, Text1.Top + 1, SRCCOPY)
  pic.Picture = pic.Image
  SavePicture pic.Image, "text.bmp"
  pic.Visible = False
  Text1.SetFocus
  
End Sub

Recommended Answers

All 12 Replies

HI,

Kindly Furnish the error Details...

-venkat

HI,

Kindly Furnish the error Details...

-venkat

There are no errors. Its just that I want to capture the details in the textbox and it is capturing the portion of the screen somewhere out of it.

Hi, Instead of using BitBlt() function,you can directly print inside the picture box (using pic.print method) when you reading from the file. Also set AutoRedraw property to true.

Hi, Instead of using BitBlt() function,you can directly print inside the picture box (using pic.print method) when you reading from the file. Also set AutoRedraw property to true.

Okay, Can you tell me how am I supposed to do that? :?:

Ok, I give an example.

In a form
> Draw a Picture box (Picture1)
> Draw a Command Button (Command1)

Private Sub Command1_Click()
   Picture1.AutoRedraw = True
   
   Picture1.Print "Welcome"
   Picture1.Print "To"
   Picture1.Print "VB6"
   
   SavePicture Picture1.Image,"C:\Test.jpg"
End Sub

Ok, I give an example.

In a form
> Draw a Picture box (Picture1)
> Draw a Command Button (Command1)

Private Sub Command1_Click()
   Picture1.AutoRedraw = True
   
   Picture1.Print "Welcome"
   Picture1.Print "To"
   Picture1.Print "VB6"
   
   SavePicture Picture1.Image,"C:\Test.jpg"
End Sub

Thanx!!!!!!!! That just solved my problem. But there is one last thing :)
I want to put a lot of text in the textbox which is supposed to be captured. But the textbox does not resize to the text, Although it can show scrollbars. I want it to grow as big to fit the whole text on the screen no matter how big the text is.
Is there any way it can resize itself automatically to fit the whole text?

Do you mean ? When you give large amount of text, Its font size should be adjusted to fit into it?

Do you mean ? When you give large amount of text, Its font size should be adjusted to fit into it?

Yeah, that should do
And also if i give small text the picture box should adjust its size according to the text so to fit it.

May be Picture1.TextHeight() and Picture1.TextWidth() help you to predict the font size

Problem Solved! Thanx for Helping

Now, I just discovered a problem in this thing.
The PictureBox is not printing the whole block of text, but only the first line of it.
And I dont want to increase its width anymore.
What should I do then?

May be Picture1.TextHeight() and Picture1.TextWidth() help you to predict the font size

One last problem. I swear its the last one now!
Well, there is a block of text on the textbox but only the first line is being printed on the picturebox, and I dont want to increae the width of that box.
what should i do then to solve this?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.