Re: help updating dialog box with status message
Most of the time (in C++ and MFC) people will either put the offending code
loop (reading the file in this case) in a thread or do a message pump to
allow the UI to update regularly. I do either depending on how often the
read is done and the complexity of it all. I have a function:
//
// Release main thread for background processing
//
void GiveTime()
{
// Idle until the screen redraws itself, et. al.
MSG msg;
while (::PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE ) ) {
if (!AfxGetThread()->PumpMessage( )) {
::PostQuitMessage(0);
break;
}
}
// let MFC do its idle processing
LONG lIdle = 0;
while (AfxGetApp()->OnIdle(lIdle++ ))
;
}
That I call in loops like this every once in a while to allow other messages
to be processed.
int nBlocksRead = 0;
while(ReadABlock()) {
++nBlocksRead();
if((nBlocksRead % 10) == 0) // Free up every 10th block
GiveTime();
}
}
Tom
<marks542004@yahoo.com> wrote in message
news:1182206802.937997.26580@g37g2000prf.googlegroups.com...
Calling UpdateWindow on the static control will refresh it. This is
only necessary if your processing code is blocking the application so it
cannot perform normal user I/O and painting.
--
Scott McPhillips [MVP VC++]
ok, thanks , I will try that . It isnt updating but the code is
looping reading a 20+ mb file.
In VB I would add a DoEvents to let windows do its thing, but I didnt
know if thats needed in C.
I have some books coming so hopefully that will help my
understanding . :)