Well the timer shouldn't be active if the edit is not the control with focus
cursor at the same time. ;)
AliR.
I agree with others that a timer would be a good solution for this one.
The only hesitation I would have is if you are implementing multiple
instances of the edit control you may end up with a lot of timers, but
you'd have to work hard to make this a problem. In any event, implementing
with a timer would be really easy to encapsulate and try out to see if, in
practice, it does what you want. It also makes the control more self
contained.
Tom
"vvf" <vvf@vvf.com> wrote in message
news:OuZgTHLIKHA.4708@TK2MSFTNGP03.phx.gbl...
Hi All,
I am trying to implement a mechanism that would allow me to perform an
action every 1 second. As an exercise, I am implementing an "edit box"
from scratch (including text drawing, etc) and now I need to make the
cursor blink.
Here is what I thought of:
1) WM_TIMER. This is out of the question. It's not reliable for obvious
reasons (message queue may have lots of messages before WM_TIMER)
2) Have a thread that does a WFSO on an object with a timeout of 1000 ms
but, wouldn't this WFSO be the same as a Sleep(1000) ? Since Windows is
not a real time operating system, I know I can't have precisions less
than 55ms or 15 or 10ms on some OSes, but would I be OK with Sleep(1000)
? I think I should be and besides, let's be reasonsable, since this is a
blinking cursor, +/- some milliseconds won't make a difference to the
human eye.
3) Use multi-media timers. These are using threads internally so would it
be better to just implement my 2nd method shown above ? Would I have any
advantages using multi-media timers over the 2nd method ? Are these
timers accurate?
Are there any better solutions to my problem ?
Thank you for clarifying these things for me.
__________ Information from ESET NOD32 Antivirus, version of virus
signature database 4346 (20090818) __________
The message was checked by ESET NOD32 Antivirus.
http://www.eset.com