Thanks. I think I can do that. :-)
oops hit wrong key... sorry:
//
// 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++ ))
;
}
So in your example you could do something like:
CString Output;
while (CountDown--) {
Output.Empty();
// extract figures and format into Output
m_DriveList.SetWindowText (Output); // display figures
GiveTime(); // Allow UI to update
}
Tom
"Lilith" <lilith@dcccd.edu> wrote in message
news:q6va831t2ksp0o3ehdl643cggurail6cgn@4ax.com...
I have a utilty I'm in the process of writing for montoring the amount
of remaining space on a number of network drives. I'm adding
functionality to loop every X-seconds then checking the figures again.
Eventually these figures will be written to a file but for now I'm
trying to display them fresh on each loop to a text box.
CString Output;
while (CountDown--) {
Output.Empty();
.
. // extract figures and format into Output
.
m_DriveList.SetWindowText (Output); // display figures
Sleep (1000); // wait a second
}
In the current configuration this should accumulate the figures and
put them in Output. I can vouch that this is being done. My problem
is that the text window won't display until the while loop is
finished. Due to an earlier glitch, when I hadn't emptied Output at
the top of the loop, I could tell that the text was being placed in
the text box because I watched the vertical scroll bar react. But it
never displayed.
Is there something I need to do to force the display? Or is this
expected behavior?
--
TIA,
Lilith