• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

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

Ren

Создал диалог. Переопределил 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:
 
G

grigsoft

Статус в диалоге просто так не работает. Посмотри в примерах MFC - там есть пример с тулбаром и статусом в диалоге.
 
S

SunSanych

А у меня получилось вот так:

Код:
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.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!