Marian Walter
April 7th, 1998, 12:36 PM
I have found a little bug in CLongOperation class created by Klaus Gutter. When CLongOperation class is created, text in StatusBar's panes is moved to the left and text in left most pane is lost, till CLongOperation class exists.
I have made this changes to fix tis problem in Visual C++ 5.0:
1. in function: "void CLongOperation::CreateProgressControl()"
changed lines marked with !!!!!
// add a pane between the text and the currently leftmost pane
int anPart[32];
// !!!!! int nParts = pStatusBar->GetStatusBarCtrl().GetParts(31, anPart+1);
int nParts = pStatusBar->GetStatusBarCtrl().GetParts(31, anPart);
// !!!!! anPart[0] = rc.left;
anPart[nParts] = rc.left;
nParts++;
pStatusBar->GetStatusBarCtrl().SetParts(nParts, anPart);
// !!!!! pStatusBar->GetStatusBarCtrl().GetRect(1, rc);
pStatusBar->GetStatusBarCtrl().GetRect(nParts, rc); // create progress bar control
2. in function: void CLongOperation::Stop()
int anPart[32];
int nParts = pStatusBar->GetStatusBarCtrl().GetParts(31, anPart);
nParts--;
// !!!!! pStatusBar->GetStatusBarCtrl().SetParts(nParts, anPart+1);
pStatusBar->GetStatusBarCtrl().SetParts(nParts, anPart);
I have made this changes to fix tis problem in Visual C++ 5.0:
1. in function: "void CLongOperation::CreateProgressControl()"
changed lines marked with !!!!!
// add a pane between the text and the currently leftmost pane
int anPart[32];
// !!!!! int nParts = pStatusBar->GetStatusBarCtrl().GetParts(31, anPart+1);
int nParts = pStatusBar->GetStatusBarCtrl().GetParts(31, anPart);
// !!!!! anPart[0] = rc.left;
anPart[nParts] = rc.left;
nParts++;
pStatusBar->GetStatusBarCtrl().SetParts(nParts, anPart);
// !!!!! pStatusBar->GetStatusBarCtrl().GetRect(1, rc);
pStatusBar->GetStatusBarCtrl().GetRect(nParts, rc); // create progress bar control
2. in function: void CLongOperation::Stop()
int anPart[32];
int nParts = pStatusBar->GetStatusBarCtrl().GetParts(31, anPart);
nParts--;
// !!!!! pStatusBar->GetStatusBarCtrl().SetParts(nParts, anPart+1);
pStatusBar->GetStatusBarCtrl().SetParts(nParts, anPart);