Re[5]: CCeCommandBar. Откуда взялся лишний элемент?
От: Alexander Shargin Россия RSDN.ru
Дата: 16.08.04 13:36
Оценка: 2 (1)
Здравствуйте, MOG2, Вы писали:

MOG>Я выслал проект на указаный адрес.


Посмотрел проект. Задумчивый он. Ты будешь смеяться, но у меня проблема не повторилась ни в дебаге, ни в релизе. Но я немного почитал код и могу предложить следующее:
— перегенери проект без использования doc/view и прочей ерунды — на PPC это портировано довольно криво, да и смысла особого в этом нет.
— если хочется использовать именно этот проект, добавь в CMainFrame::OnCreate (до создания комманд бара) строчку:

m_bShowSharedNewButton = FALSE;


Background: ресурс AFXCE_IDR_SCRATCH_SHMENU используется в MFC для создании пустого комманд бара. Позже, при обработке InsertMenuBar и LoadToolBar MFC парсит ресурсы меню/тулбара и добавляет кнопки в этот пустой комманд бар. Но, как ты заметил, этот пустой комманд бар не совсем пустой — в нём есть один пункт "New". Если флаг bShowSharedNewButton не задан, эта кнопка просто удаляется при создании комманд бара:

BOOL CCeCommandBar::CreateEx(CWnd* pParentWnd, DWORD dwCtrlStyle, DWORD dwStyle, 
                             CRect rcBorders, UINT nID)
{
    ...

    if (!m_bShowSharedNewButton)
    {
        VERIFY(DefWindowProc(TB_DELETEBUTTON, 0, 0));
    }

    m_nCount = GetNumButtons();
    
    return TRUE;
}


Вот почему в большинстве проектов этот пункт не фигурирует — визард сам выставляет флаг в FALSE. Видимо, ты выбрал такой набор опций, при котором этого не произошло.

Если же кнопка осталась, она должна приводить к вызову обработчика OnFileNew. Если у тебя это работает не так, для меня это загадка.
--
Я думал, ты огромный страшный Бажище,
А ты недоучка, крохотный Бажик...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.