Гость
Форумы / C++ [игнор отключен] [закрыт для гостей] / трудности с выводом немодальных окон CPropertySheet / 18 сообщений из 18, страница 1 из 1
06.07.2007, 17:06
    #34644612
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
Добрый день!
Есть небольшая проблема, стоит задача на диалоговою форму поместить немодальное окно CPropertySheet с соответсвующими вкладками. сделал вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CScanerSheet sheet(L"Тут будут всякие закладки");
//CScanerPage page1();
CPropertyPage page1(IDD_PROPPAGE1);
sheet.AddPage(&page1);
sheet.EnableStackedTabs(FALSE);

//sheet.DoModal();
sheet.Create(this,WS_VISIBLE);
sheet.ModifyStyleEx( 0 ,WS_EX_CONTROLPARENT);
sheet.SetWindowPos(NULL,ColTwo+ 25 , 4 *Border,widthWindow-ColTwo- 5 ,heightWindow* 0 . 9 ,SWP_NOZORDER|SWP_NOSIZE|SWP_NOACTIVATE);

закоментированый вариант вызова модальной формы работает, а не модальной тоже вроде бы срабатывает окно появляется на долю секунды и исчезает. Подскажите как быть?? в чем ошибка.
Немодальное окно должно быть типа child
...
Рейтинг: 0 / 0
06.07.2007, 17:56
    #34644753
1211212
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
CScanerSheet наследуется от CPropertySheet и м.б. здесь проблема?
...
Рейтинг: 0 / 0
06.07.2007, 17:57
    #34644756
Y
Y
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
Andrey1306Добрый день!
Есть небольшая проблема, стоит задача на диалоговою форму поместить немодальное окно CPropertySheet с соответсвующими вкладками. сделал вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CScanerSheet sheet(L"Тут будут всякие закладки");
//CScanerPage page1();
CPropertyPage page1(IDD_PROPPAGE1);
sheet.AddPage(&page1);
sheet.EnableStackedTabs(FALSE);

//sheet.DoModal();
sheet.Create(this,WS_VISIBLE);
sheet.ModifyStyleEx( 0 ,WS_EX_CONTROLPARENT);
sheet.SetWindowPos(NULL,ColTwo+ 25 , 4 *Border,widthWindow-ColTwo- 5 ,heightWindow* 0 . 9 ,SWP_NOZORDER|SWP_NOSIZE|SWP_NOACTIVATE);

закоментированый вариант вызова модальной формы работает, а не модальной тоже вроде бы срабатывает окно появляется на долю секунды и исчезает. Подскажите как быть?? в чем ошибка.
Немодальное окно должно быть типа child

Destruktor srabatyvet....
...
Рейтинг: 0 / 0
06.07.2007, 18:01
    #34644772
1211212
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
Да скорее всего - выполнение продолжается и локальная переменная теряется...
...
Рейтинг: 0 / 0
06.07.2007, 18:23
    #34644832
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
где срабатывает деструктор ???
...
Рейтинг: 0 / 0
06.07.2007, 18:58
    #34644891
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
Вы имеете ввиду что объявление CScanerSheet sheet(L"Тут будут всякие закладки");
должно быть глобальным
а когда я его объявляю в h файле получаю ошибку

C2512: 'CScanerSheet' : no appropriate default constructor available
...
Рейтинг: 0 / 0
06.07.2007, 19:00
    #34644898
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
Andrey1306Вы имеете ввиду что объявление CScanerSheet sheet(L"Тут будут всякие закладки");
должно быть глобальным
а когда я его объявляю в h файле получаю ошибку

C2512: 'CScanerSheet' : no appropriate default constructor available

этой ошибки больше нету
...
Рейтинг: 0 / 0
06.07.2007, 19:05
    #34644909
1211212
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
Может добавить пустой конструктор и добавить Create. Так обычно делают.

Вавриант обойтись атрибутом-указателем. Придется ловить закрытие для delete.

Похоже это какие-то свойства - модальную форму достаточно естественно использовать, нет?
...
Рейтинг: 0 / 0
06.07.2007, 19:12
    #34644930
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
нужно динаически добавлять закладки в форму отображение разных отчетов
...
Рейтинг: 0 / 0
06.07.2007, 19:32
    #34644963
1211212
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
С последним постом я чуточку опоздал - проблема исчезла. Я имел в виду то, что на мой взгляд, такая ошибка могла возникнуть только в случае, если указана переменная:
Код: plaintext
1.
MyType a;
где MyType - класс, в котором нет публичного конструктора без параметров - VS считает его конструктором по умолчанию.

В случае
Код: plaintext
1.
MyType *a;
деструктор скорее всего сам отработает при закрытии окна.

Имеется в виду при открытом окне с закладками?
...
Рейтинг: 0 / 0
09.07.2007, 12:11
    #34647007
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
А кто может подсказать из-за чего возникает следующая проблема
код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
	
             CScanerPage page1(IDD_PROPPAGE1);
	CScanerPage page2(IDD_PROPPAGE1);
	CScanerPage page3(IDD_PROPPAGE1);
	CScanerPage page4(IDD_PROPPAGE1);
	CScanerPage page5(IDD_PROPPAGE1);
	CScanerPage page6(IDD_PROPPAGE1);

	sheet->AddPage(&page1);
	sheet->AddPage(&page2);
	sheet->AddPage(&page3);
	sheet->AddPage(&page4);
	sheet->AddPage(&page5);
	sheet->AddPage(&page6);

	sheet->EnableStackedTabs(FALSE);
	
	CWnd* pWnd = GetDlgItem (IDD_GUI_DIALOG);
	
	sheet->DoModal();
	sheet->Create(pWnd,WS_VISIBLE);
как видно в конце вызывается созданое окно свойств первый раз как модальное и второй как немодальное
в первом варианте вроде бы работает а во втором при переключение между табами получаю ошибку см рис
...
Рейтинг: 0 / 0
09.07.2007, 12:15
    #34647026
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
Да, отладка выбрасывает в objcore.cpp в этой ф-ции строка с меткой

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
BOOL CObject::IsKindOf(const CRuntimeClass* pClass) const
{
	ASSERT(this != NULL);
	// it better be in valid memory, at least for CObject size
	ASSERT(AfxIsValidAddress(this, sizeof(CObject)));

	// simple SI case
	CRuntimeClass* pClassThis = GetRuntimeClass(); // *****
             return pClassThis->IsDerivedFrom(pClass);
}
...
Рейтинг: 0 / 0
09.07.2007, 12:23
    #34647063
1211212
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
Если два раза модальное открытие не отработает, значит проблема в первом закрытии -
...
Рейтинг: 0 / 0
09.07.2007, 12:45
    #34647156
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
Меня интересует как вызов немодального окна, модальное это так к слову пришлось
...
Рейтинг: 0 / 0
09.07.2007, 13:32
    #34647383
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
А, ......... ля, протупил все вопрос снимаю
...
Рейтинг: 0 / 0
09.07.2007, 14:04
    #34647537
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
Andrey1306 пишет:
> Есть небольшая проблема, стоит задача на диалоговою форму поместить
> немодальное окно CPropertySheet с соответсвующими вкладками. сделал вот так

Я боюсь, что ты занимаешься не тем. Дело в том, что CPropertySheet/Page - это
для реализации визардов, а они модальны по определению. И эта модальность
прошита в эти классы, чуть ли не приварена.

Надо использовать просто окна win32 типа SysTabCtrl32 (это только
самы закладки, на которые можно нажимать) и показывать-прятать
дочерние диалоги. Я такое делал как-то.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
11.07.2007, 17:56
    #34654440
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
MasterZiv
Andrey1306 пишет:
> Есть небольшая проблема, стоит задача на диалоговою форму поместить
> немодальное окно CPropertySheet с соответсвующими вкладками. сделал вот так

Я боюсь, что ты занимаешься не тем. Дело в том, что CPropertySheet/Page - это
для реализации визардов, а они модальны по определению. И эта модальность
прошита в эти классы, чуть ли не приварена.

Надо использовать просто окна win32 типа SysTabCtrl32 (это только
самы закладки, на которые можно нажимать) и показывать-прятать
дочерние диалоги. Я такое делал как-то.
Posted via ActualForum NNTP Server 1.4

не соглашусь так как уже сделал, у меня на форме должно вмонтированым примерно посредине появится немодальное окно с динамическим добавлением вкладок
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
24.12.2020, 20:32
    #40030973
kondrik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
трудности с выводом немодальных окон CPropertySheet
У меня аналогичная проблема. Был модальный CPropertySheetEx. Я хочу переделать на немодальный.
Инициализация:
m_ppsWizard = new CWizard(AFX_IDS_APP_TITLE, NULL, 0, bmpWatermark, NULL, bmpHeader);
Добавляю 2 вкладки через AddPage

Создание CPropertySheetEx:
m_ppsWizard->Create(this, WS_SYSMENU | WS_POPUP | WS_CAPTION | DS_MODALFRAME | DS_CONTEXTHELP | WS_VISIBLE, WS_EX_DLGMODALFRAME);

созданный property sheet появляется с двумя вкладками и кратковременно появляются на вкладке контролы, которые пропадают и в результате вкладки отображаются пустыми. Деструктор для property sheet и для property page не вызывался и не вызывался для контролов.
Как победить? Похоже не отрисовываются контролы.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / трудности с выводом немодальных окон CPropertySheet / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]