CStatusBar Feature Need You Help.
Hi,
Good day.
When i develop my Start Bar feature.
I add the StatusBar to the bottom of my main window form.
When i change the main window size,
The status Bar can't move to the new position with my mouse action.
Could you please give me some suggestion
Thanks in advance.
==========================================
BOOL CMyAppDlg::OnInitDialog()
{
/////////////////////////////////// Move
Window ////////////////////////////////
int screenx = GetSystemMetrics(SM_CXSCREEN);
int screeny = GetSystemMetrics(SM_CYSCREEN);
screenx = screenx * 1/3;
screeny = screeny * 3/5;
int mainwndx = 500;
int mainwndy = 150;
MoveWindow(mainwndx, mainwndy, screenx, screeny);
GetWindowRect(m_mainPos);
CRect rect;
GetClientRect(&rect);
m_TreeCommand.MoveWindow(GetTreeRect(), TRUE);
m_bar.Create(this); //We create the status bar
m_bar.SetIndicators(indicators,2); //Set the number of panes
//Size the two panes
m_bar.SetPaneInfo(0,ID_INDICATOR_NISH,
SBPS_NORMAL,rect.Width()-100);
m_bar.SetPaneInfo(1,ID_INDICATOR_TIME,SBPS_STRETCH ,0);
//This is where we actually draw it on the screen
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,
ID_INDICATOR_TIME);
//m_bar.GetStatusBarCtrl().SetBkColor(RGB(180,180,180));
m_bar.GetStatusBarCtrl().SetTimer(100,1000,NULL);
m_bar.MoveWindow(GetStatusBarRect(),TRUE);
}
==========================================
CRect CMyAppDlg::GetTreeRect()
{
CRect rect, rectHead;
GetClientRect(&rect);
rectHead.left = static_cast<int>(rect.left + rect.Width() * 0.02);
rectHead.top = static_cast<int>(rect.top + 95);
rectHead.right = static_cast<int>(rect.left + rect.Width() * 0.98);
//rectHead.bottom = static_cast<int>(rect.top + rect.Height() *
0.95);
rectHead.bottom = static_cast<int>(rect.bottom - 25);
return rectHead;
}
CRect CMyAppDlg::GetStatusBarRect()
{
CRect rect, rectHead;
GetClientRect(&rect);
rectHead.left = static_cast<int>(rect.left + rect.Width() * 0.02);
rectHead.top = static_cast<int>(rect.bottom - 25);
rectHead.right = static_cast<int>(rect.left + rect.Width() * 0.98);
rectHead.bottom = static_cast<int>(rect.bottom);
//rectHead.bottom = static_cast<int>(rect.top + 445);
return rectHead;
}
==========================================
void CMyAppDlg::OnSize(UINT nType, int cx, int cy)
{
if(m_bInit == true)
{
m_TreeCommand.MoveWindow(GetTreeRect(), TRUE);
//m_bar.MoveWindow(GetStatusBarRect(), TRUE); // when i
uncommented this line, will jumped out runtime error..
}
Invalidate();
CDialog::OnSize(nType, cx, cy);
if ( !IsWindowVisible() )
return;
}
==========================================