CStatusBar создается, но не появляется...
От: s0rc  
Дата: 12.10.04 17:11
Оценка:
При создание status bar его окно создается, но имеет размер (0,0)
Может кто знает почему? судя по мсдн, я сделал все правильно...

Вот выдержки из кода:

class CBMainWnd: public CMDIFrameWnd {
DECLARE_DYNCREATE(CBMainWnd);

CStatusBar m_TestStatus;

afx_msg int OnCreate(LPCREATESTRUCT pCreateStruct);

DECLARE_MESSAGE_MAP();
};

int CBMainWnd::OnCreate(LPCREATESTRUCT pCreateStruct){

if (CMDIFrameWnd::OnCreate(pCreateStruct) == -1)
return -1;

UINT uiId[]={IDS_READY};
m_TestStatus.Create(this);
m_TestStatus.SetIndicators(uiId,1);

return 0;
}
... << RSDN@Home 1.1.3 stable >>
Re: CStatusBar создается, но не появляется...
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 12.10.04 17:36
Оценка:
Здравствуйте, s0rc, Вы писали:

S>При создание status bar его окно создается, но имеет размер (0,0)

S>Может кто знает почему? судя по мсдн, я сделал все правильно...

Я делал так:

int CMainWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
    // try to create status window
    m_statusBar.CreateEx(
        this,
        SBARS_SIZEGRIP,
        WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
        AFX_IDW_STATUS_BAR    // predefined window ID
    );
    m_statusBar.GetStatusBarCtrl().SetMinHeight(20);
    static UINT auIndicators[] = {
        ID_SEPARATOR,
        IDS_INDICATOR_CTRL,
        IDS_INDICATOR_ALT,
        IDS_INDICATOR_SHIFT,
        IDS_INDICATOR_CAPS,
        IDS_INDICATOR_NUM,
        IDS_INDICATOR_SCRL
    };
    m_statusBar.SetIndicators(auIndicators, 7);

    // invoke inherited handler
    if (CFrameWnd::OnCreate(lpCreateStruct) == -1) {
        return (-1);
    }
...
}
[ posted via RSDN@Home 1.1.2 stable, accompanied by Metallica — Die, Die My Darling ]
- Искренне ваш, Поросенок Пафнутий
Re[2]: CStatusBar создается, но не появляется...
От: s0rc  
Дата: 12.10.04 18:49
Оценка:
Здравствуйте, SchweinDeBurg,
Попробовал последовать Вашему совету, но не помогло...
Странно, но окно создается (смотрел Spy++), только размеры у него 0 х 0, такие они задаются при создании (смотрел пошагово)...
Может я забыл что-нибудь дописать в инициализации самого приложения? такая же картина наблюдается и с CDialogBar...

Если, кто-нибудь подскажет как заставить работать это по нормальному, буду очень признателен...
... << RSDN@Home 1.1.3 stable >>
Re: CStatusBar создается, но не появляется...
От: squiz  
Дата: 12.10.04 19:47
Оценка:
Здравствуйте, s0rc, Вы писали:

Davai project, posmotrim... VS'03 + default mfc application MDI = vse ok
esi pomenyat' po tvoemu — toje ok...
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Re[2]: CStatusBar создается, но не появляется...
От: s0rc  
Дата: 12.10.04 20:11
Оценка:
Здравствуйте, squiz, Вы писали:

S>Здравствуйте, s0rc, Вы писали:


S>Davai project, posmotrim... VS'03 + default mfc application MDI = vse ok

S>esi pomenyat' po tvoemu — toje ok...

Вот это меня больше всего и смущает... проект изначально не MFC, но потом я поменял настройки и он стал таковым... а в чем проблема понять не могу... существенных различий от стандартного МФЦ в настройках проекта нет... только файлы ресурсов разные, но вроде тоже проблем не должно быть... ах да, я еще свои библиотеки подключаю, но проблем вроде не длжно быть, они с МФЦ не имею ничего общего...
... << RSDN@Home 1.1.3 stable >>
Re[3]: CStatusBar создается, но не появляется...
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 13.10.04 03:46
Оценка:
Здравствуйте, s0rc, Вы писали:

S>Вот это меня больше всего и смущает... проект изначально не MFC, но потом я поменял настройки и он стал таковым...


и theApp добавил?
Re[4]: CStatusBar создается, но не появляется...
От: s0rc  
Дата: 13.10.04 13:51
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>Здравствуйте, s0rc, Вы писали:


S>>Вот это меня больше всего и смущает... проект изначально не MFC, но потом я поменял настройки и он стал таковым...


OE>и theApp добавил?


Конечно!
... << RSDN@Home 1.1.3 stable >>
Re: CStatusBar создается, но не появляется...
От: ksg71 Германия  
Дата: 14.10.04 08:19
Оценка:
Здравствуйте, s0rc, Вы писали:

S>При создание status bar его окно создается, но имеет размер (0,0)

S>Может кто знает почему? судя по мсдн, я сделал все правильно...

S>Вот выдержки из кода:


S>class CBMainWnd: public CMDIFrameWnd {

S> DECLARE_DYNCREATE(CBMainWnd);

S> CStatusBar m_TestStatus;


S> afx_msg int OnCreate(LPCREATESTRUCT pCreateStruct);


S> DECLARE_MESSAGE_MAP();

S>};

S>int CBMainWnd::OnCreate(LPCREATESTRUCT pCreateStruct){


S> if (CMDIFrameWnd::OnCreate(pCreateStruct) == -1)

S> return -1;

S> UINT uiId[]={IDS_READY};

S> m_TestStatus.Create(this);
S> m_TestStatus.SetIndicators(uiId,1);

S> return 0;

S>}

Проверь, задана ли строка в ресурсах для IDS_READY и
вызывай

 m_TestStatus.Create(this,WS_CHILD | WS_VISIBLE | CBRS_BOTTOM, ID_YOUR_STATUS_BAR);


поскольку просто Create берет СтатусБар с AFX_IDW_STATUS_BAR ,
естественно константу ID_YOUR_STATUS_BAR определи вначале
Das Reich der Freiheit beginnt da, wo die Arbeit aufhört. (c) Karl Marx
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.