Урок 27. Рисуем вкладки(табы). [Ссылка]
Можно пожалуйста из ссылки такое же нарисовать после слов "Собственно, всё! Классический вид вкладок готов" примерно(иконки не нужны. Только текст и сами вкладки и механизм переключение), используя функции Api.
1. 007wan - 30 Октября, 2019 - 12:51:11 - перейти к сообщению
2. Zireael - 02 Ноября, 2019 - 12:37:37 - перейти к сообщению
Нарисованный Tab (Отобразить)
3. 007wan - 03 Ноября, 2019 - 00:54:57 - перейти к сообщению
Zireael пишет:
Нарисованный Tab (Отобразить)
Вау, спасибо большое. Теперь можно чуть по другому сделать?
Примерно так:
Нажмите для увеличения
(Добавление)
Еще можно сделать некоторый апгрейд, пожалуйста: Контроллы нарисованные через CreateWindow исчезают, а когда на них нажимаешь, то они промелькают, может нужно после создания контролла на нарисованном табе сделать прозрачное отверстие(где-то был код)?
4. Zireael - 03 Ноября, 2019 - 01:32:54 - перейти к сообщению
Цитата:
Контроллы нарисованные через CreateWindow исчезают
https://kibor-bot.com/forum/topi...70515#1567270515
5. 007wan - 03 Ноября, 2019 - 01:44:06 - перейти к сообщению
Zireael , А чем и как рисовать "х"? в углу правом верхнем каждой вкладки?
(Добавление)
И где координаты всего таба? т.е вкладок, где расположены и где сам прямоугольник главный
(Добавление)
Хочу переместить чуть ниже
(Добавление)
И где координаты всего таба? т.е вкладок, где расположены и где сам прямоугольник главный
(Добавление)
Хочу переместить чуть ниже
6. Zireael - 03 Ноября, 2019 - 01:55:53 - перейти к сообщению
Цитата:
где координаты всего таба?
Цитата:
// таб
old_brush=SelectObject(hdc_mem, brush1);
RoundRect(hdc_mem, 5, 30, 350, 250, 10, 10);
old_brush=SelectObject(hdc_mem, brush1);
RoundRect(hdc_mem, 5, 30, 350, 250, 10, 10);
Цитата:
вкладок
Цитата:
rect_tab[0][0]=20; rect_tab[0][1]=10; rect_tab[0][2]=100; rect_tab[0][3]=40;
Цитата:
где сам прямоугольник главный
Цитата:
int image_width=400;
int image_height=300;
int image_height=300;
Цитата:
Хочу переместить чуть ниже
Смотря что перемещать. Если сам таб относительно выводимого изображения, то
Цитата:
RoundRect(hdc_mem, 5, 30, 350, 250, 10, 10);
если вывод изображения на диалог, то
Цитата:
BitBlt(hdc, 0, 0, image_width, image_height, hdc_mem, 0, 0, SRCCOPY);
7. 007wan - 03 Ноября, 2019 - 02:00:47 - перейти к сообщению
Переместить нужно весь таб чуть ниже, т.е сами вкладки и прямоугольник главный(который ниже вкладок), но не фон.
(Добавление)
Ща разбебусь)
(Добавление)
Увеличиваю это и вкладки становятся меньше в высоту
(Добавление)
Ща разбебусь)
(Добавление)
Цитата:
rect_tab[0][0]=20; rect_tab[0][1]=10; rect_tab[0][2]=100; rect_tab[0][3]=40;
Увеличиваю это и вкладки становятся меньше в высоту
8. Zireael - 03 Ноября, 2019 - 02:12:53 - перейти к сообщению
Цитата:
rect_tab[0][0]=20; rect_tab[0][1]=10; rect_tab[0][2]=100; rect_tab[0][3]=40;
Увеличиваю это и вкладки становятся меньше в высоту
Увеличиваю это и вкладки становятся меньше в высоту
Если начальная координата Y 10, а конечная 40, то высота 30, если увеличивать начальную, а конечную не менять, то естественно что высота меньше.
9. 007wan - 03 Ноября, 2019 - 02:34:57 - перейти к сообщению
Zireael , Извините, как сделать зависимость: количество символов = ширина вкладки+Учитывая иконки вкладки слева перед текстом(если можно пример).
Изначально у меня такая идея:
При запуске кода будет ВСЕГДА одна вкладка, называется она "Пустая вкладка"(ёё не закрыть, нету крестика справа вверху вкладки), потом идут какие-то контроллы, которые видно(Часть таба прозрачная).
Есть меню сверху с кнопками "Файл--->Создать процесс", нажимая это создается новая вкладка и она становится активной, а все остальные - нету. на ней уже другие контроллы итд(всего пока будет 3 вкладки, потом посомтрю) при переключении будут меняться контроллы и соответвественно будет прозрачность таба меняться.
Мжно пж такое, для меня это сложно, умоляЮ)
(Добавление)
Подробная идея:
При запуске кода будет создаваться одна вкладка "Пустая вкладка"(ёё текст можно будет в дальнейшем изменить, как и иконку, но раз это пустая вкладка - значит иконки нету) количество букв в слове любом при создании вкладки повлияет на ширину вкладки и повлияет на расположении вкладок промежуточных(то есть они переместятся, т.к ширина другой изменилась).
Что в пустой ЛЮБОЙ вкладки: ListBox с названиями имён(слов), при выборе которых создаются контроллы, а сам Listbox
- удаляется именно для "Пустой активной вкладки", как и выбранная строчка в Listbox, выбранная строчка в Listbox , например, "Вкладка 1" это имя назначается вкладке той, которая сейчас активна и в которой была выбрана строчка в Listbox и создаются контроллы(для каждой вкладки разные, а именно в зависимости: какую строчку в Listbox выбрали, то и такие будут контроллы. Максимально из Listbox можно выбрать 1 строчку, не больше(тоесть не должны повторяться вкладки)
Далее будет меню сверху: "Файл--->Создать процесс", при нажатии создается пустая вкладка.
Изначально у меня такая идея:
При запуске кода будет ВСЕГДА одна вкладка, называется она "Пустая вкладка"(ёё не закрыть, нету крестика справа вверху вкладки), потом идут какие-то контроллы, которые видно(Часть таба прозрачная).
Есть меню сверху с кнопками "Файл--->Создать процесс", нажимая это создается новая вкладка и она становится активной, а все остальные - нету. на ней уже другие контроллы итд(всего пока будет 3 вкладки, потом посомтрю) при переключении будут меняться контроллы и соответвественно будет прозрачность таба меняться.
Мжно пж такое, для меня это сложно, умоляЮ)
(Добавление)
Подробная идея:
При запуске кода будет создаваться одна вкладка "Пустая вкладка"(ёё текст можно будет в дальнейшем изменить, как и иконку, но раз это пустая вкладка - значит иконки нету) количество букв в слове любом при создании вкладки повлияет на ширину вкладки и повлияет на расположении вкладок промежуточных(то есть они переместятся, т.к ширина другой изменилась).
Что в пустой ЛЮБОЙ вкладки: ListBox с названиями имён(слов), при выборе которых создаются контроллы, а сам Listbox
- удаляется именно для "Пустой активной вкладки", как и выбранная строчка в Listbox, выбранная строчка в Listbox , например, "Вкладка 1" это имя назначается вкладке той, которая сейчас активна и в которой была выбрана строчка в Listbox и создаются контроллы(для каждой вкладки разные, а именно в зависимости: какую строчку в Listbox выбрали, то и такие будут контроллы. Максимально из Listbox можно выбрать 1 строчку, не больше(тоесть не должны повторяться вкладки)
Далее будет меню сверху: "Файл--->Создать процесс", при нажатии создается пустая вкладка.
10. Zireael - 03 Ноября, 2019 - 02:48:06 - перейти к сообщению
Первый пост:
GetTextExtentPoint32A - вычисляет ширину и высоту указанной строки текста.
Цитата:
Только текст и сами вкладки и механизм переключение
Цитата:
как сделать зависимость: количество символов = ширина вкладки+Учитывая иконки вкладки слева перед текстом
GetTextExtentPoint32A - вычисляет ширину и высоту указанной строки текста.