After some searching I was able to figure out how to change the text color in a read-only edit box, but it also turns out that is not exactly what I want.
I have a simple bot that connects to battle.net so I add text every time something else is said. I want to be able to change the color depending on whether it is normal chat text, a whisper, an emote, etc. But I don't want it to affect the entire edit control--just a line or two (or whatever).
Is there a simple way to do this? I looked at the TextOut() function, and that might work, but it seems like it would be a lot of work if I understand how it works correctly. That is, it looks like you have to specify the coordinates for the text and it wouldn't work too well with scrolling and constantly adding more text.