|
16 / 16 / 2
Регистрация: 08.05.2009
Сообщений: 81
|
|
Как работать создавать вкладки с CTabCtrl?03.06.2009, 23:15. Показов 6081. Ответов 14
Метки нет (Все метки)
Приветствую!
MFC. У меня возникла необходимость создать вкладки в диалоге, но работа с CPropertySheet меня не устраивает. Работал ли кто-нибудь с вкладками при помощи элемента CTabCtrl (не зря же он создан?), и если да, то объясните пожалуйста, как управлять вкладками?
0
|
|
| 03.06.2009, 23:15 | |
|
Ответы с готовыми решениями:
14
Трудности с размещением страниц на CTabCtrl внутри другого CTabCtrl
CTabCtrl - как с ним работать? |
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 03.06.2009, 23:24 | |
|
Добавляешь этот контрол на диалог, привязываешь к нему переменную
далее переменная.InsertItem(0, "Первая вкладка"); переменная.InsertItem(1, "Вторая вкладка"); ... естессно, они при этом будут пустые, это тебе не c# наполнение и переключение придется реализовать самому
0
|
|
|
16 / 16 / 2
Регистрация: 08.05.2009
Сообщений: 81
|
|
| 03.06.2009, 23:28 [ТС] | |
|
Так. Насчет метода InsertItem. Он только добавляет сами вкладки? Ладно.
А возможно ли полключать к нему что-то вроде готового PropertyPage-ресурса? Понятное дело, что это не C#. Я работал когда-то с вкладками, используя класс CPropertySheet, добавляя в него методом AddPage страницы CPropertyPage, ресурсы для которых предварительно заготавливал. А с этим контролом можно так же? Если нет, то можно хотя бы направление, как осуществлять это самое наполнение и переключение? Спасибо. PS: добавил, привязал .PPS: в книжках я находил только описание метода с CPropertySheet .
0
|
|
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|||||||||||
| 03.06.2009, 23:38 | |||||||||||
|
можно нашлёпать готовых диалогов со стилем Сhild, визардом сделать классы, потом
потом добавляем обработчик переключения табов, а там
там ещё будет некоторый гемор с тем, чтобы по клавише Tab форус прыгал внутрь диалога, но щас не помню, чё там за запарки... Вроде какие-то флаги надо установить... впрочем, пока об этом можешь не париться :-D
1
|
|||||||||||
|
16 / 16 / 2
Регистрация: 08.05.2009
Сообщений: 81
|
|
| 03.06.2009, 23:47 [ТС] | |
|
Спасибо, в общем ясно. Пара уточнений:
CDialog1 - это класс ресурса для страницы? Свойство Child обязательно, или достаточно только границы отключить? И, если можно, такой вопрос (не совсем по теме): Переустановил себе студию (снес Express и поставил наконец-то Professional), и теперь, когда я захожу в ClassWizard из контекстного меню, выскакивает ошибка какого-то сценария (другие способы не проверял еще, но думаю будет так же; на другом компе проверял специально - работало всё). Картинка с окошком во вложении.
0
|
|
|
16 / 16 / 2
Регистрация: 08.05.2009
Сообщений: 81
|
|
| 03.06.2009, 23:52 [ТС] | |
|
PS: а здесь точно reinterpret_cast?? может надо dynamic_cast? он же вроде с иерархией наследования работает.
0
|
|
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 04.06.2009, 00:10 | |
|
Xardas,
CDialog1 - это класс, сгенерированный визардом на основе темплейта диалога (Add class) Свойство Child обязательно, не-child я не пробовал, как-то желание заняться сексом в гамаке пока не возникало (: выскакивает ошибка какого-то сценария хз, с таким не сталкивался думаю, что-то порушено в ИЕ попробуй отключить все аддоны, поставь 7, 8 версию... Добавлено через 2 минуты 1 секунду а здесь точно reinterpret_cast?? точно. ты значение типа DWORD_PTR преобразуешь в нужный тебе тип, никакой иерархии нет
0
|
|
|
16 / 16 / 2
Регистрация: 08.05.2009
Сообщений: 81
|
|
| 04.06.2009, 00:21 [ТС] | |
|
Из-за этой ошибки не могу по человечески работать с класс-визардом, а ВСЁ вручную делать как-то неохота - всё-таки Visual, пусть и не C#
.Windows Vista, IE8. та же ошибка начала выскакивать еще когда была 7 версия IE и студия стояла 2005. собственно потому и замутил всю историю с переходом на 2008 студию. не помогло. Насчет reinterpret_cast - стормозил. теперь увидел. На старом компе поставил Windows 7, и туда эту же 2008 студию - ClassWizard без проблем вообще работает. Тут - не знаю уже, что делать.
0
|
|
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 04.06.2009, 00:32 | |
|
Из-за этой ошибки не могу по человечески работать с класс-визардом
PS. чтобы найти решение этой проблемы мне потребовалось 37 секунд (из них 11 - на открытие банки джин-тоника) и 2 запроса в гоогле. :-D
0
|
|
|
16 / 16 / 2
Регистрация: 08.05.2009
Сообщений: 81
|
|
| 04.06.2009, 00:34 [ТС] | |
|
0
|
|
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 04.06.2009, 00:42 | |
|
первый запрос в гоогле: по скольку по-русски пытаться искать что-то бесполезно, я попытался представить, как эта фраза будет звучать в оригинале:
"visual studio wizard object is not supported this method" неудачно, вывелась какая-то ***** (тут я открываю банку джин-тоника.. хорошо пошло... )потом я замечаю номер строки, и пишу такой запрос: "visual studio wizard error line 815" и вуаля (((: Проблема специфичная для IE8, есть workaround
0
|
|
|
16 / 16 / 2
Регистрация: 08.05.2009
Сообщений: 81
|
|
| 04.06.2009, 00:48 [ТС] | |
|
Rififi, ладно, спасибо. нашел что-то на английском.
попробую устранить. неужели нельзя исправить что-то, не залезая в реестр ? или меня опять гуглем в дебри занесло??
0
|
|
|
MCSD: APP BUILDER
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
|
|
| 04.06.2009, 00:52 | |
|
насколько я понял, нельзя. это именно приделывание костыля.
наверное команда которая делает IE немного по***лась с визуальщиками, вот они и чутка подгадили им :lol:
0
|
|
|
16 / 16 / 2
Регистрация: 08.05.2009
Сообщений: 81
|
||||||||||||||||||||||||||
| 04.06.2009, 02:56 [ТС] | ||||||||||||||||||||||||||
|
все возможно
![]() PS: проблема кажись ушла. спасибо, что тоже не гордый ![]() Добавлено через 28 минут 22 секунды хе, все равно не все так просто. Вот как сделал я. В классе главной формы у меня есть переменная класса CTabCtrl, связанная с контролом:
Далее, в методе OnInitDialiog класса главной формы добавляю действия для подключения первой и единственной пока что вкладки (метода SetItemDataPtr я не нашел, поэтому пока что не привязываю никакого адреса окна к вкладке. также нет у CTabCtrl метода SetItemData. возможно, можно в конструкторе инициализировать lParam?):
PS: стоп. а Create же нужно вызывать?? недостаточно ведь одного конструктора ![]() Добавлено через 7 минут 31 секунду нормально. осталось только подогнать позицию окна. Добавлено через 1 час 25 минут 58 секунд Итак, вот рабочий код. Может и не самый оптимальный по количеству действий, но тем не менее (для двух вкладок):
Как активировать обработку сообщений от них?
0
|
||||||||||||||||||||||||||
|
16 / 16 / 2
Регистрация: 08.05.2009
Сообщений: 81
|
|
| 28.06.2009, 16:31 [ТС] | |
|
Вижу, дать исчерпывающий ответ ни у кого нет малейшего желания. Жаль.
На rsdn, sourceproejct и в других источниках я находил разные примеры, но, почему-то когда пытался вручную воспроизводить предложенное описание реализации вкладок, всегда, видимо, упускал какую-то деталь, которая наверное всеми без исключения подразумевается, но не упоминается .В общем, забил я на это дело. Буду премного благодарен тем опытным людям, кто не поленится полностью изложить концепцию создания пользовательского интерфейса с вкладками.
0
|
|
| 28.06.2009, 16:31 | |
|
Помогаю со студенческими работами здесь
15
Как создавать вкладки QTab программно? [WPF] Как динамически создавать графические элементы и как с ними работать? Как создавать файлы в нужной мне директории, а потом работать с этими файлами? Что нужно знать, чтобы работать программистом и создавать не бесполезные программы? Просьба откликнутся тем кто умеет создавать серверы работать с соц движками Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|