CFrameWnd
От: black_igor  
Дата: 02.08.01 07:38
Оценка:
Подскажите, как достать главное окно-рамку из любого класса (например, CDialog)
Re: CFrameWnd
От: Willi  
Дата: 02.08.01 09:01
Оценка:
Здравствуйте black_igor, вы писали:

BI>Подскажите, как достать главное окно-рамку из любого класса (например, CDialog)


AfxGetMainWnd()
\/\/i||i
Re[2]: CFrameWnd
От: black_igor  
Дата: 02.08.01 11:26
Оценка:
Здравствуйте Willi, вы писали:

W>Здравствуйте black_igor, вы писали:


BI>>Подскажите, как достать главное окно-рамку из любого класса (например, CDialog)


W>AfxGetMainWnd()


Спасибо, но у меня это не страбатывало, т.к. эта функция фактически возвращает значение m_pMainWnd, и оно почему-то всегда NULL.
Может, конечно в InitInstance ее инициализировать, просто, думал есть какой-то другой путь.
Re[3]: CFrameWnd
От: Willi  
Дата: 02.08.01 12:10
Оценка:
Здравствуйте black_igor, вы писали:

BI>Здравствуйте Willi, вы писали:


W>>Здравствуйте black_igor, вы писали:


BI>>>Подскажите, как достать главное окно-рамку из любого класса (например, CDialog)


W>>AfxGetMainWnd()


BI>Спасибо, но у меня это не страбатывало, т.к. эта функция фактически возвращает значение m_pMainWnd, и оно почему-то всегда NULL.

BI>Может, конечно в InitInstance ее инициализировать, просто, думал есть какой-то другой путь.

m_pMainWnd действительно нужно инициализировать в InitInstance
если ты генеришь проект визардом то код инициализации подставлет тебе визард
например

// create main MDI Frame window
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;


единственная особенность
если ты делаешь RegularDLL с использование MFC
то в ней создается отдельный класс наследник CWinApp
у которого m_pMainWnd равен NULL
и соответсвенно AfxGetMainWnd возвращает NULL
\/\/i||i
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.