#mfc #load #state #mdi
#mfc #загрузка #состояние #mdi
Вопрос:
У меня есть приложение MFC MDI, которое раздражающе загружает предыдущее состояние панелей инструментов и т.д., Когда я его запускаю. Я установил
m_bSaveState = FALSE;
в конструкторе приложения … но это не имело никакого эффекта. Итак, я попытался перегрузить метод LoadState(), как в:
// added this to the MainApp.h file
virtual BOOL LoadState(CWnd* pFrame, LPCTSTR lpszSectionName = NULL );
и …
// added the following to the MainApp.cpp
BOOL CDrumGenMDIApp::LoadState (CWnd* pFrame, LPCTSTR lpszSectionName )
{
// do nothing to pre-load the state from the Registry
return TRUE;
}
… однако этот метод, похоже, никогда не вызывался. Когда система загружает фреймы, я почти уверен, что она вызывает какой-то профиль LoadState() … но как мне заставить его вызвать мой перегруженный метод?
Спасибо
Ответ №1:
Глядя на файл заголовка, функция, которую вы пытаетесь переопределить, не объявлена виртуальной и не существует?!
Однако следующая функция является виртуальной:
virtual BOOL LoadState(LPCTSTR lpszSectionName = NULL, CFrameImpl* pFrameImpl = NULL);
Я сам этого не пробовал, но теоретически это должно сработать.