|
|
Yes, i've tried that also. but I get an Assert error in the wincore.h.
I wanted to start a timer before i started doing something. if 1sec has passed then PAUSE. if complete before 1sec then stop timer.
<br />
HANDLE m_TimerHandle = INVALID_HANDLE_VALUE;<br />
<br />
void test::OnButtonStart<br />
{<br />
...<br />
while(something)<br />
{<br />
int i = 0;<br />
...<br />
BOOL success = ::CreateTimerQueueTimer(&m_timerHandle, NULL, TimerProc,<br />
this, 0, 1000,<br />
WT_EXECUTEONLYONCE);<br />
while(i<999999)<br />
{<br />
i++;<br />
}<br />
DeleteTimerQueueTimer(NULL, m_timerHandle, NULL);<br />
...<br />
}<br />
}<br />
<br />
void test::QueueTimerHandler()<br />
{<br />
MessageBeep(0xFFFFFFFF);<br />
DeleteTimerQueueTimer(NULL, m_timerHandle, NULL);<br />
OnButtonPause();
changes colors on the button)<br />
}<br />
void CALLBACK TimerProc(void *lpParam, BOOLEAN timeFired)<br />
{<br />
test *obj = (test*) lpParam;<br />
obj->QueueTimerHandler();<br />
}<br />
Kitty5
|
|
|
|
|
kitty5 wrote: I get an Assert error in the wincore.h.
Probably because you need WINVER defined to be 5 or higher
here is a snippet from one of my files that uses that library
#if WINVER < 0x0500
#error TimerQueueTimer.h requires Win32 Kernel 5
#endif
led mike
|
|
|
|
|
See here[^] for a description of what you're doing wrong and some insight on how timers work.
The following code from your post is the cause of the problem and is wrong in a few levels:
int i = 0;
while(i<999999999)
{
i++;
}
Firstly, as the link I gave above explains, you're not dispatching messages so the timer process will not get called. Secondly, in a multitasking system busy waits should be avoided at all costs. Try code like this:
MSG m;
while (GetMessage(&m, NULL, 0, 0) )
{
DispatchMessage(&m);
}
You will have to implement some mechanism to break out of the message loop after 7 seconds for this code to be the same as your code however. Another timer would do the trick.
Steve
|
|
|
|
|
|
Hi all,
Would the CreateDirectory function throw an exception if the directory that it must create already exists? (Stupid question I know .... )
Many Thanx
Regards,
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
|
|
|
|
|
what does the msdn say about it ?
|
|
|
|
|
toxcct, I have read what MS has posted on MSDN. And the only relevent information I could find was that the return value would be ERROR_ALREADY_EXISTS, but that doesn't answer my question, or does it?
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
|
|
|
|
|
yes it does... returning a value means that it knows that case, and don't throw an exception.
moreover, know that the Win32 API is written in C, not C++, so exceptions are unknown in C.
|
|
|
|
|
Thank you toxcct, and thats why you are a MVP and I'm not ...
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
|
|
|
|
|
toxcct wrote: moreover, know that the Win32 API is written in C, not C++, so exceptions are unknown in C.
SEH in not a feature of standard C but that can be used in C on Microsoft systems and the OS does throw SEH exceptions at times (not in this case however).
Steve
|
|
|
|
|
Programm3r wrote: Would the CreateDirectory function throw an exception if the directory that it must create already exists?
No, It will return 0.
And GetLastError returns ERROR_ALREADY_EXISTS .
i.e.
BOOL bCreated = CreateDirectory(..);
if (bCreated ==FALSE )
{
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
}
}
|
|
|
|
|
thanxs again prasad_som ...
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
|
|
|
|
|
hi,
i want to disable the radio button in a group...
have you got an idea?
please help me....
thanks...
Giulio
|
|
|
|
|
Disabling a radio button (or any window, for that matter) can be done by calling the object's EnableWindow() method with the parameter FALSE .
/ravi
|
|
|
|
|
CWnd::EnableWindow(FALSE);
|
|
|
|
|
Ing.Raiz82 wrote: i want to disable the radio button in a group...
have you got an idea?
I've used this class in the past for just such a requirement. It's easy to use.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
|
|
yes i understand...
but i resolved with
GetDlgItem(IDC_CHECK)->EnableWindow();
thanks....
Giulio
|
|
|
|
|
Are you smoking drugs? If so, can I have some?
|
|
|
|
|
|
AAAAaaawwww man, thats's too strong for me. Do you have anything VB wise?
|
|
|
|
|
GetDlgItem(IDC_CONTROL_ID)->EnableWindow(FALSE);
-- modified at 15:07 Tuesday 20th February, 2007
Why was that voted a 2? The answer is correct.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
hi all,
i am doing my final year project on face detection using webcam in VC++ and am finding some problems in coding..
could you all please help me..
|
|
|
|