Прикрутить меню к диалогу в MFC
От: tt_andrey  
Дата: 18.07.07 08:01
Оценка:
Вобщем потребовалось мне прикрутить меню стандартное к диалогу(это то которое "File->open... etc")
Я написал подобное(DiffDlg это мой класс наследованный от CDialog)




        DiffDlg mainDlg;
    this->m_pMainWnd = &mainDlg;
    CMenu mainMenu;
    mainMenu.LoadMenu(IDR_MENU1);
    mainDlg.SetMenu(&mainMenu);
    mainDlg.DoModal();



при запуске программа брякается по Assertion Fault

вот в этом месте



AFXWIN_INLINE BOOL CWnd::SetMenu(CMenu* pMenu)
    { ASSERT(::IsWindow(m_hWnd)); return ::SetMenu(m_hWnd, pMenu->GetSafeHmenu()); }




то есть я с удивлением обнаружил что диалог не является окном, поэтому и не может иметь меню,
как альтернативно можно к нему прикрутить меню?
Re: Прикрутить меню к диалогу в MFC
От: Serge_HID Россия  
Дата: 18.07.07 08:27
Оценка:
Исправлено форматирование текста. — SchweinDeBurg

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

_>Вобщем потребовалось мне прикрутить меню стандартное к диалогу(это то которое "File->open... etc")

_>Я написал подобное(DiffDlg это мой класс наследованный от CDialog)


class CDialog : public CWnd

Попробуйте строчки


_>    CMenu mainMenu;
_>    mainMenu.LoadMenu(IDR_MENU1);
_>    mainDlg.SetMenu(&mainMenu);
_>    mainDlg.DoModal();

перенести в OnInitDialog():

BOOL DiffDlg::OnInitDialog() 
{
    CDialog::OnInitDialog();
    
    // TODO: Add extra initialization here
    MyMenu.LoadMenu(IDR_MENU1);
    SetMenu(&MyMenu);
    
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
}
Re[2]: Прикрутить меню к диалогу в MFC
От: tt_andrey  
Дата: 18.07.07 08:43
Оценка:
благодарю, очень помогло! )
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.