Автор
|
Тема: Вот такая нехорошая штука с DialogBar'oм...
|
Gilbert |
опубликован 23-10-2001 12:49 MSK
Решил создать два диалог бара. Создал диалоги и на основе их создал 2 DialogBar-a. Когда открыл ClassWizard он спросил создавать ли новый класс, и два варианта: создать новый, и выбрать существующий. Я ответил выбрать существующий и выбрал класс вида т.е CAppView например. Так вот, он почему-то вместо натянутого главного диалога поместил диалог который я только что добавил. Теперь ничего не запускается, назад вернуть у меня не получается. Как можно исправить такую ситуацию? Спасибо.
|
DmitryRyvkin
|
опубликован 23-10-2001 15:44 MSK
Странно. Если создаеш CDialogBar то причем тут CView ? Надо было создать СMyDialogBar1 и СMyDialogBar2 . Кстати -"Создал диалоги и на основе их создал 2 DialogBar-a" - как именно ? Ведь надо либо создавать динамич. экземпляр CDialogBar и звать Create( CWnd* pParentWnd, LPCTSTR lpszTemplateName, UINT nStyle, UINT nID ), либо делать производный класс. А исправить - попробуй в проекте найти файл .clw, в нем сторочки типа [DLG:IDD_DIALOG1] - твой ID ресурса Type=1 Class=CXXXView -твой view ,напиши Class=? , может можно и иначе, не знаю |
DmitryRyvkin
|
опубликован 23-10-2001 17:25 MSK
PS да, в хидере View класса заменить в строке enum { IDD = IDD_XXXX }; на старый IDD (если у тебя View от класса CFormView. Если нет - то про какой натянутый главный "диалог " говориш ?
|
Gilbert
|
опубликован 24-10-2001 06:27 MSK
Вот как я их создал:m_wBar.Create(this,IDD_DIALOG1,CBRS_TOP,ID_MY_BAR); m_wBar2.Create(this,IDD_DIALOG2,CBRS_TOP,ID_MY_BAR2); исправления не помогли, выскакивет при запуске такая же ошибка Unhandled exception и т.д. Тогда ещё вопрос, создал я два класса СMyDialogBar1 и СMyDialogBar2, как мне из них обращаться к переменным вида или документа? |
DmitryRyvkin
|
опубликован 24-10-2001 07:07 MSK
Опиши подробней, что от чего производное и т п |
Gilbert
|
опубликован 24-10-2001 08:18 MSK
Фуууу...разобрался. Дело было не в бабине, как говорится :)) Но вопрос остаётся: Вот добавил я два диалога Dialog1 и Dialog2, на них поместил надписи и кнопочки. Потом сделал такВ CMainFrame.h: CDialogBar m_wBar,m_wBar2; В CMainFrame.cpp: m_wndReBar.Create(this); m_wBar.Create(this,IDD_DIALOG1,CBRS_TOP,ID_MY_BAR); m_wBar2.Create(this,IDD_DIALOG2,CBRS_TOP,ID_MY_BAR2); Зашёл в ClassView и создал два класса CDialog1 и CDialog2 для обработки нажатий на кнопки. А теперь как мне обращаться из этих созданных классов к переменным объекта вида и документа? |
Ursus
|
опубликован 24-10-2001 09:51 MSK
Проще всего обработчики кнопок DialogBar-а поставить или в основоном фрейме или в документе, тогда отпадает вопрос как обращаться. Могу в принципе кинуть исходники того ка это делал я. Правда если дома не придет злобная тетка лень и не будет меня заламывать :) |
Gilbert
|
опубликован 24-10-2001 00:57 MSK
кидай, пожалуйста, на gilbertnet@mail.ru |
Gilbert
|
опубликован 25-10-2001 06:01 MSK
Помогите кто-нибудь!!! |
Gilbert
|
опубликован 25-10-2001 06:40 MSK
Всё, всем спасибо, я опять сам разобрался.Как всё таки полезно самому помучиться :) |