|
-
May 16th, 2005, 11:26 AM
#1
Thread Starter
Lively Member
Setting textbox colour
Hi,
I have two VB6 applications, and I am working on changing the properties of one using API calls in the other (just experimenting, really). Anyway, I was wandering if there's a way to change the text colour in a textbox using API?
I had a look with the usual Spy++ when changing the text colour within the program, but that just posts the message 'WM_PAINT'. I also had a look at the SetProp function in MSDN, but I'm not sure where to go with that.
Any ideas?
-
May 16th, 2005, 02:17 PM
#2
Re: Setting textbox colour
Well, you'll have to use the SendMessageA API function and, the WM_SETFONT as the message 
Cheers,
RyanJ
-
May 16th, 2005, 03:37 PM
#3
Thread Starter
Lively Member
Re: Setting textbox colour
Thanks for the prompt reply. How do I use this?
Using:
VB Code:
Debug.Print SendMessage(Text1.hwnd, WM_GETFONT, 0&, 0&)
Debug.Print SendMessage(Text2.hwnd, WM_GETFONT, 0&, 0&)
gives 889851594 and 889851594 where Text1 has black text and Text2 has red text.
Could you give me a simple example of just changing the forecolour to red?
EDIT:
Just reading around a bit, and it seems like there is no colour associated with font. If I were to use SetTextColor, how do I get the device context of the TextBox?
EDIT 2:
Reading around further, came up with the following:
VB Code:
Dim lngMainTexthDC As Long
lngMainTexthDC = GetDC(txtMainText.hwnd)
SetTextColor lngMainTexthDC, RGB(255, 0, 0)
However, this does not work. Still not sure why...
Last edited by olamm2k; May 16th, 2005 at 04:21 PM.
-
May 17th, 2005, 02:20 PM
#4
Re: Setting textbox colour
 Originally Posted by olamm2k
EDIT:
Just reading around a bit, and it seems like there is no colour associated with font. If I were to use SetTextColor, how do I get the device context of the TextBox?
I do not think the Textbox has one, if it does then it will be Text1.hdc.
If it is not set then you'd have to creaqte your own.
Cheers,
RyanJ
-
May 17th, 2005, 04:38 PM
#5
Thread Starter
Lively Member
Re: Setting textbox colour
How do I do this? There's the CreateDC function, but how would I use that to create a device context for an object outside my application?
VB Code:
Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA"
(ByVal lpDriverName As String, _
ByVal lpDeviceName As String,
ByVal lpOutput As String,
lpInitData As DEVMODE) As Long
-
May 17th, 2005, 04:42 PM
#6
Re: Setting textbox colour
Outside your application? I have no idea at all how you could do it.
I'll see if I can find some code / a tutorial that will help or, hopefuly someone that can answer this will reply before then 
Cheers,
RyanJ
-
May 17th, 2005, 04:48 PM
#7
Thread Starter
Lively Member
Re: Setting textbox colour
Okay, thanks.
Just to amend my second post,
VB Code:
Dim lngMainTexthDC As Long
lngMainTexthDC = GetDC(txtMainText.hwnd)
SetTextColor lngMainTexthDC, RGB(255, 0, 0)
does work, but only when you then use TextOut to write onto the TextBox, which isn't very helpful.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|