
Tabs and Splitter
Модераторы: Duncon, Hawk, Romeo, Eugie
Люди подскажите как создать закладки(tabs) под Win32(хотя бы сам принцип) , но не стандартные а как в Excele, и как ещё описать разделитель окна , т.е. splitter под апи функции. Мот кто знает какие статьи иль исходники. 

- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Как в Excel'е, это какие?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
В WinAPI есть 2 типа закладок: tab controls и property sheets. Первые требуют все делать вручную (т.е. скрывать-показыать контролы при переключении между закладками). Вторые в этом смысле гораздо удобнее, т.к. фактически каждая закладка в этом случае - отдельное диалоговое окно, которое отображается внутри sheet при переключении. Поэтому рекомендую использовать property sheets (подробности см. в MSDN), причем если пишешь на VC++, то проще воспользоваться MFC классами CPropertSheet/CPropertyPage. Что касается разделителей, то стандартного API контрола нет, в различных application frameworks он реализован по-разному. Например, в MFC есть класс CSplitterWnd, в Delphi VCL - TSplitter. Читай документацию.
Спасибо конечно,но...не MFC мне нужно.
мот не правильно вопрос сформулировал.
Мне нуны закладки которые нуна писать самому начиная от корней и до самых кончиков. Вот я и прошу помочь мне какими нить статьями а мот и примерами. Со сплиттером тоже самое (НЕ MFC). Как его реализовать только методами API.
мот не правильно вопрос сформулировал.
Мне нуны закладки которые нуна писать самому начиная от корней и до самых кончиков. Вот я и прошу помочь мне какими нить статьями а мот и примерами. Со сплиттером тоже самое (НЕ MFC). Как его реализовать только методами API.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Splitter - это библиотечная надстройка. API такого нет. А вот для закладок и визардов есть API (См. PropertySheet Win32 SDK).
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Я не знаю надстройка это или нет мне просто надо сделать разделитель окон ,сплиттер или как он там по научному называется. Мне просто нуно моё окно разбить им на две части. Вот и всё.
Про закладки спасибо посмотрю.
Про закладки спасибо посмотрю.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Говоря о библиотечной надстройке я имел ввиду, что такого стандартного Windows-контрола - нет, и придётся всё делать самому, собственными ручками. Для того, что посмотреть как это делается советую изучить исходники класса CSplitterWnd в MFC либо темплейта CSplitterWindowT в WTL.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ба-лин... Ладно придётся порыться в MFC и по нету полазить.
Ещё такая фишка начал я тут сам табы писать написал класс контрола
+ ещё клас отдельной закладки. Всё вроде правильно, хотя может чего то не допонимаю, кароче :
создал в вижуале проект под вин32 и всунул туда свой класс, ну чтоб посмотреть на мои закладки(чё вообще получилось). Создал объект моего контрола, добавил 3 закладки:
и тут странные вещи начались, когда смотрю по шагам в функциях моего контрола объявленные в этой функции локальные преременные не хотят работать :
В этом случае если например n должно быть равно 2 то почему то оно остаётся равным 0, хотя всё написано правильно, в тоже время m, которое объявлено глабально работает и становиться равным 2. Кроме того когда стрелочка отладчика стоит на 6 строке то потом после f10 она сразу перепрыгивает на 52 а потом (после очередного f10)снова возврошается на 5 как и должна была сделать после 1 раза, и только тогда m изменяется. Мот кто знает что это такое происходит потому что я не знаю, может просто знаний мало, кароче если у кого появиться какие ниить предположения пишите.
:?: :?: :?: Кста, кто не знает, прикольная фича http://koders.com/ пишешь что ты ищешь(хотя бы предполагаешь) и она тебе выдаёт кучу файлов других программеров в которых встречается то что ищешь
читал база там вроде неплохая, иногда помогает а иногда и нет...

Ещё такая фишка начал я тут сам табы писать написал класс контрола
+ ещё клас отдельной закладки. Всё вроде правильно, хотя может чего то не допонимаю, кароче :
создал в вижуале проект под вин32 и всунул туда свой класс, ну чтоб посмотреть на мои закладки(чё вообще получилось). Создал объект моего контрола, добавил 3 закладки:
Код: Выделить всё
cl_MyTabCtrl clTabCtrl;
clTabCtrl.Add("first");
clTabCtrl.Add("second");
clTabCtrl.Add("third");
Код: Выделить всё
0 int m;
1 int clTabCtrl::SomeFunc1()
2 {
3 int n = 0;
4 n = SomeFunc2();
5 m = SomeFunc2();
6 ...........
..........
51 return n;
52 }
53
:?: :?: :?: Кста, кто не знает, прикольная фича http://koders.com/ пишешь что ты ищешь(хотя бы предполагаешь) и она тебе выдаёт кучу файлов других программеров в которых встречается то что ищешь



- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Я знаю что происходит. Проект не пересобрался. И ты дебажишь старый бинарный код на новом текстовом коде 

Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Большое тебе Romeoчеловеческое спасибо. В принципе оказалось что я просто собирал в релизе а не на дебаге... :lol: