• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 333
  • Last Modified:

is it possible to draw an Icon in a vb textbox

is it possible to draw an Icon in a vb textbox
  • 4
1 Solution
Richie_SimonettiIT OperationsCommented:
Could you use a rich text box instead?
Richie_SimonettiIT OperationsCommented:
This is a complete form, save it with notepad:

Begin VB.Form Form1
   Caption         =   "Form1"
   ClientHeight    =   3195
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   3195
   ScaleWidth      =   4680
   StartUpPosition =   3  'Windows Default
   Begin VB.TextBox Text1
      Height          =   1095
      Left            =   1980
      TabIndex        =   2
      Text            =   "Text1"
      Top             =   1440
      Width           =   2055
   Begin VB.PictureBox Picture2
      Height          =   495
      Left            =   3180
      ScaleHeight     =   435
      ScaleWidth      =   1155
      TabIndex        =   1
      Top             =   300
      Width           =   1215
   Begin VB.PictureBox Picture1
      Height          =   495
      Left            =   300
      Picture         =   "icon in textbox.frx":0000
      ScaleHeight     =   435
      ScaleWidth      =   1155
      TabIndex        =   0
      Top             =   240
      Width           =   1215
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'Option Explicit
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
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Sub Form_Click()
      Const PIXEL = 3
      Picture1.ScaleMode = PIXEL
      hDestDC& = GetDC(Text1.hwnd)
      x& = 0: y& = 0
      nWidth& = Picture1.ScaleWidth
      nHeight& = Picture1.ScaleHeight
      ' Assign information of the source bitmap.
      hSrcDC& = Picture1.hDC
      xSrc& = 0: ySrc& = 0
      ' Assign the SRCCOPY constant to the Raster operation.
      dwRop& = &HCC0020
      Suc& = BitBlt(hDestDC&, x&, y&, nWidth&, nHeight&, hSrcDC&, _
      xSrc&, ySrc&, dwRop&)
      End Sub
Textboxes do not support graphics.
As mentioned, a RichTextbox may be sufficient, or you may want to create your own, which is actually pretty easy:

* Add a usercontrol to your project.
* Drop an image control on the user control.
* Drop a textbox control on the user control.
* Run the User control wizard.
* Select all properties, methods and events you want to support.
* Map all user control properties to the corresponding "child" controls.
* Finalize the wizard

* Modify the code of the UserControl_resize so that the image control is attached to the left of the user control (or wherever you want it) and the textbox fills in the rest of the control.
* Optionally add a special picture to the user control's toolbox image.

Save this user control as something like IconTextBox.

Add this user control to your form as though you were adding a textbox.
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

Richie_SimonettiIT OperationsCommented:
That form's code posted does it. Any progress?
Richie_SimonettiIT OperationsCommented:
Hi again, do you need more help?
Just ask.

Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now