Не появляется окно состояния в диалоговом окне

  • Автор темы Ren
  • Дата начала
Статус
Закрыто для дальнейших ответов.
R

Ren

Гость
#1
Создал диалог. Переопределил OnCreate. Создал Обьект Панели состояния m_wndStatusBar. Но она не появляестя. ПОЧЕМУ?
Код:
int CTestDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
m_wndStatusBar.Create(this);
CRect textRect;
CClientDC aDC(&m_wndStatusBar);
aDC.SelectObject(m_wndStatusBar.GetFont());
aDC.DrawText(_T(" отображения:99"),-1,textRect,DT_SINGLELINE|DT_CALCRECT);
int width = textRect.Width();
m_wndStatusBar.GetStatusBarCtrl().SetParts(1,&width);
m_wndStatusBar.GetStatusBarCtrl().SetText(_T("Масштаб отображения:1"),0,0);
return 0;
}
:lol:
 

grigsoft

Well-Known Member
15.11.2005
735
0
#2
Статус в диалоге просто так не работает. Посмотри в примерах MFC - там есть пример с тулбаром и статусом в диалоге.
 

SunSanych

Well-Known Member
28.06.2006
71
0
#3
А у меня получилось вот так:

Код:
int CTestDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;

CRect r;
GetClientRect(&r);
int width[2] = {r.Width()/2, -1};

BOOL rez = m_wndStatusBar.Create(WS_CHILD | WS_VISIBLE | CBRS_BOTTOM, r, this, AFX_IDW_STATUS_BAR);

m_wndStatusBar.SetParts(2,width);
m_wndStatusBar.SetText(_T("Масштаб отображения:1"),0,0);
m_wndStatusBar.SetText(_T("Масштаб отображения:2"),1,0);

return 0;
}
m_wndStatusBar обект класса CStatusBarCtrl а не CStatusBar.
 
Статус
Закрыто для дальнейших ответов.