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

Тема в разделе "MS Visual C++", создана пользователем Ren, 27 дек 2007.

Статус темы:
Закрыта.
  1. Ren

    Ren Гость

    Создал диалог. Переопределил OnCreate. Создал Обьект Панели состояния m_wndStatusBar. Но она не появляестя. ПОЧЕМУ?
    Код (Text):
    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:
     
  2. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Статус в диалоге просто так не работает. Посмотри в примерах MFC - там есть пример с тулбаром и статусом в диалоге.
     
  3. SunSanych

    SunSanych Well-Known Member

    Регистрация:
    28 июн 2006
    Сообщения:
    71
    Симпатии:
    0
    А у меня получилось вот так:

    Код (Text):
    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.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей