![]() |
|
|
![]()
|
|
| patt |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.11.2004 Где: Николаев Репутация: нет Всего: 2 |
Мажно ли из диалогового приложения по нажатию кнопки вызвать окно CFrameWnd, разделённое CSplitter'ом, если да, то почему не работает?:
void CServDlg::OnBnClickedButton3() { frm.Create(NULL,"MY"); frm.ShowWindow(SW_SHOW); } ------------------------------------------------------ void Frame::OnShowWindow(BOOL bShow, UINT nStatus) { CFrameWnd::OnShowWindow(bShow, nStatus); CCreateContext *pContext; if(!spliter.CreateStatic(this, 1, 2)) return; if(!spliter.CreateView(0, 0, RUNTIME_CLASS(CFrameWnd), CSize(200, 300), pContext) || !spliter.CreateView(0, 1, RUNTIME_CLASS(CFrameWnd), CSize(100,100), pContext)) return; } |
|||
|
||||
| Step |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 2 Всего: 25 |
уже поздно в прекреате, или хотябы в онкреате
в месте где вы используете pContext-нулевой его надо проинициализровать указать куда присобачить и т.д. посмотрите поля надо хотя бы вот так
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
||||||
|
|||||||
| patt |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.11.2004 Где: Николаев Репутация: нет Всего: 2 |
Cо сплитером похоже разобрался, теперь фрейм появляется, но при закрытии выдаёт ошибку - видимо потому что пытается выгрузить всё приложение (если сначала закрыть диалоговое окно то работает) код тот же :
void CServDlg::OnBnClickedButton3() { frm.Create(NULL,"MY"); frm.ShowWindow(SW_SHOW); } |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 2 Всего: 25 |
patt,
Создаеться два обинаковых экземпляра фрейма и вида - одинаковых При выходе пытается удалить первый который и удаляет его вместе со вторым а потом пытаеться удалить второй, которого уже нету -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| patt |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.11.2004 Где: Николаев Репутация: нет Всего: 2 |
Step,
Похоже здесь дело не в этом: ошибка появляется если создаётся фреймовое окно, даже если убрать сплитер и всё остальное: frm - экземпляр класса CFrameWnd или наследника от CFrameWnd (пробовал и так и так), обьявлен в хэдере; frm.Create(NULL,"MY"); frm.ShowWindow(SW_SHOW); |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 2 Всего: 25 |
у меня была такая проблема, вот когда я сделал два класа фрейма, и создовал виды на их основе и в одном фрейме переопределял вид как написанно в моей статье то все стало как положено
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |