How can I draw a gradient in a textbox
For example, horizontal fade from black to blue.
Thanks.
Printable View
How can I draw a gradient in a textbox
For example, horizontal fade from black to blue.
Thanks.
I just read your post, and I have a little idea that poped into my head right now.
You can make a virtual text box. I'll explain:
You take a PictureBox which in it you can draw anything you want.
You put a label in the PictureBox. You use the Form_KeyDown to write into the virtual text box, I mean, adding text to the label.
I Didn't tried it yet, because it just came up to me..
I'll try it, and later I'll post the project.
I hope I helped,
Arie.
That's a sample of what I meant.
I hope that's what you wanted.
Arie.
Thanks! Its a little glitchy when typing, but for my purposes, im just pasting text into it - so its perfect.
Woa...
Why have I not heard of this before.... :DVB Code:
While DoEvents And Running
cool code
okay, maybe im just talking to myself but...
I didnt get your code that made the gradient, so i looked up the GradientFillRect API in API-Guide, and applied and and it works a lot faster. Here's the example they gave:
I used this code to make a function that affected the picturebox.VB Code:
Private Type TRIVERTEX x As Long y As Long Red As Integer 'Ushort value Green As Integer 'Ushort value Blue As Integer 'ushort value Alpha As Integer 'ushort End Type Private Type GRADIENT_RECT UpperLeft As Long 'In reality this is a UNSIGNED Long LowerRight As Long 'In reality this is a UNSIGNED Long End Type Const GRADIENT_FILL_RECT_H As Long = &H0 'In this mode, two endpoints describe a rectangle. The rectangle is 'defined to have a constant color (specified by the TRIVERTEX structure) for the left and right edges. GDI interpolates 'the color from the top to bottom edge and fills the interior. Const GRADIENT_FILL_RECT_V As Long = &H1 'In this mode, two endpoints describe a rectangle. The rectangle ' is defined to have a constant color (specified by the TRIVERTEX structure) for the top and bottom edges. GDI interpolates ' the color from the top to bottom edge and fills the interior. Const GRADIENT_FILL_TRIANGLE As Long = &H2 'In this mode, an array of TRIVERTEX structures is passed to GDI 'along with a list of array indexes that describe separate triangles. GDI performs linear interpolation between triangle vertices 'and fills the interior. Drawing is done directly in 24- and 32-bpp modes. Dithering is performed in 16-, 8.4-, and 1-bpp mode. Const GRADIENT_FILL_OP_FLAG As Long = &HFF Private Declare Function GradientFillRect Lib "msimg32" Alias "GradientFill" (ByVal hdc As Long, pVertex As TRIVERTEX, ByVal dwNumVertex As Long, pMesh As GRADIENT_RECT, ByVal dwNumMesh As Long, ByVal dwMode As Long) As Long Private Function LongToUShort(Unsigned As Long) As Integer 'A small function to convert from long to unsigned short LongToUShort = CInt(Unsigned - &H10000) End Function Private Sub Form_Load() 'KPD-Team 1999 'URL: [url]http://www.allapi.net/[/url] 'E-Mail: [email][email protected][/email] 'API uses pixels Me.ScaleMode = vbPixels End Sub Private Sub Form_Paint() Dim vert(1) As TRIVERTEX Dim gRect As GRADIENT_RECT 'from black With vert(0) .x = 0 .y = 0 .Red = 0& .Green = 0& '&HFF& '0& .Blue = 0& .Alpha = 0& End With 'to blue With vert(1) .x = Me.ScaleWidth .y = Me.ScaleHeight .Red = 0& .Green = 0& .Blue = LongToUShort(&HFF00& ) ' There is no space before the ), but VBForums was tuning it into a smilie .Alpha = 0& End With gRect.UpperLeft = 0 gRect.LowerRight = 1 GradientFillRect Me.hdc, vert(0), 2, gRect, 1, GRADIENT_FILL_RECT_H End Sub
I have made a program all you can do is paste your text onto the virtual text box. When the program loads it will automatically put the clipboard text onto the label after that clicking ctrl+c will paste your text onto the label.
Davism