Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
1

Положить фигурную скобку на бок и растянуть

24.05.2013, 13:52. Показов 4186. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Надо положить фигурную скобку на бок и результат растянуть по горизонтали. Как это сделать?
Положить фигурную скобку на бок и растянуть
Остальной текст - не проблема, вопрос именно в скобках.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2013, 13:52
Ответы с готовыми решениями:

Сервер неправильно понимает фигурную скобку
(Извините, другого названия для темы не придумал) Добрый вечер, я недавно начал изучать php и по...

Почему при объявлении переменных в классе просит фигурную скобку в конце?
package main; public class Optimizacia { class x { double x=0, eps=0, fx=0, pfx=0,...

не работает 3я строчка просит скобку, ставишь скобку говорит что не нужна
form8.ADOQuery2.Active:=false; form8.ADOQuery2.SQL.Clear; form8.ADOQuery2.SQL.Add('select kod_s,...

Дана 4-х угольная призма со стороной осн. а, найти S осн., S бок. поверхности, S диаг. сеч. Диаг. бок. грани образует с боковым ребром угол а
Всем доброго времени суток! Задача: Найдите площдь диагонального сечения, площадь боковой...

23
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
24.05.2013, 14:31 2
смотри проект
Вложения
Тип файла: rar Project.rar (9.7 Кб, 19 просмотров)
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
24.05.2013, 18:59 3
Вообще-то, символы L"\u23DF" и L"\u23DE" (у, скажем, шрифта Cambria Math) никто не отменял, это и есть они, перевернутые фигурные скобки:
C++
1
                DrawText(hdc, L"\u23DF \u23DE", -1, &r, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
показывает:
Положить фигурную скобку на бок и растянуть
1
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
25.05.2013, 11:51  [ТС] 4
Цитата Сообщение от Игорь с++ Посмотреть сообщение
смотри проект
А где мне взять правильный nHeight? Растянуть то скобку надо над/под определённой подстрокой, а она может быть какой угодно.

Добавлено через 53 секунды
Цитата Сообщение от UI Посмотреть сообщение
Вообще-то, символы L"\u23DF" и L"\u23DE"
Ни фига не понял.
0
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
25.05.2013, 12:07 5
Цитата Сообщение от taras atavin Посмотреть сообщение
А где мне взять правильный nHeight? Растянуть то скобку надо над/под определённой подстрокой, а она может быть какой угодно.
Пардон не понял.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
25.05.2013, 12:16  [ТС] 6
Ну вот смотри: в одном случае между скобками
Код
a=0; b=20
, в другом
Код
ladlecount=0; electrodecount=0
, а в третьем только
Код
i=0
, скобки должны растягиваться/сжиматься автоматически от длины этого текста. По аналогии с круглыми скобками в формуле, когда в этих скобках может быть и однострочное подвыражение, и двухэтажная дробь, и дробь вида https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{\sqrt[2]{1-\frac{v^2}{c^2}}}, а скобки в зависимости от этого должны менять свой размер от одной строки до трёх, только у меня скобки не слева/справа, а сверху/снизу. Как их правильно растянуть на длину текста? В задаче сразу два требования:
1. Положить скобку на бок.
2. Растянуть её по другому тексту.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
25.05.2013, 12:37 7
Цитата Сообщение от taras atavin Посмотреть сообщение
Ни фига не понял.
Что именно непонятно? Что существуют юникодные символы? Вот они: http://unicode-table.com/ru/se... 0%BA%D0%B0
Что можно в программе использовать любой шрифт любого размера? CreateFont в помощь. Что можно любой символ отрисовать этим шрифтом? DrawText в помощь, как именно задаются символы, я показал выше.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
25.05.2013, 12:53  [ТС] 8
Цитата Сообщение от UI Посмотреть сообщение
Что именно непонятно? Что существуют юникодные символы?
На юникоде у меня весь проект. А что за символы и с чем их едят?

Добавлено через 1 минуту
Цитата Сообщение от UI Посмотреть сообщение
как именно задаются символы, я показал выше.
Вот этого я и не понял.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
25.05.2013, 16:29 9
Смотри:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
void InCurly(HDC hdc, int x, int y, TCHAR *s)
{
    SIZE sz;
    GetTextExtentPoint32(hdc, s, wcslen(s), &sz);
 
    HFONT newFont = CreateFont(155, sz.cx, 0, 70, 200, 0, 0, 0, DEFAULT_CHARSET,
                               OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
                               DEFAULT_PITCH | FF_DONTCARE, TEXT("Cambria Math"));
    HFONT oldFont = (HFONT)SelectObject(hdc, newFont);
    SetBkMode(hdc, TRANSPARENT);
    TextOut(hdc, x, y - (155 + sz.cy)/2, L"\u23DE", 1); // Символ \u23de - это фигурная скобка вверх
    TextOut(hdc, x, y - (155 - sz.cy)/2, L"\u23DF", 1); // Символ \u23df - скобка вниз
    DeleteObject(SelectObject(hdc, oldFont));
 
    TextOut(hdc, x, y, s, wcslen(s));
}
 
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HDC hdc = 0;
    PAINTSTRUCT ps;
    // RECT r;
    switch (message)
    {
        case WM_CREATE:
 
            break;
        case WM_PAINT:
            {
                hdc = BeginPaint(hwnd, &ps);
                InCurly(hdc, 100, 100, TEXT("a=0; b=20"));
                InCurly(hdc, 200, 100, TEXT("++a; ++b"));
                EndPaint(hwnd, &ps);
            }
            break;
        case WM_DESTROY:
            PostQuitMessage (0);
            break;
        default:
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
 
    return 0;
}
Имеем результат:
Положить фигурную скобку на бок и растянуть

Это нужно?
1
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
25.05.2013, 16:47  [ТС] 10
Цитата Сообщение от UI Посмотреть сообщение
TextOut(hdc, x, y - (155 + sz.cy)/2, L"\u23DE", 1); // Символ \u23de - это фигурная скобка вверх
Не понимаю, как это так хитро задана скобка.

Добавлено через 2 минуты
Цитата Сообщение от UI Посмотреть сообщение
"Cambria Math"
А если его нет на машине?
0
-=ЮрА=-
25.05.2013, 20:33
  #11

Не по теме:

UI, прикол - мне нра!

Цитата Сообщение от taras atavin Посмотреть сообщение
Не понимаю, как это так хитро задана скобка.
-
Цитата Сообщение от UI Посмотреть сообщение
L"\u23DE"
L означает wchar_t - тобишь широкий символ, в коде была отрисовка символов юникода.

0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
25.05.2013, 21:39 12
Цитата Сообщение от taras atavin Посмотреть сообщение
А если его нет на машине?
А если нет - значит, либо в списке шрифтов, которые поддерживают этот символ ищем те, что есть на любой машине (насколько я вижу, ни одного из стандартных шрифтов там нет, а Cambria Math устанавливается при установке пакета OpenOffice), либо качаем любой шрифт из этого списка, устанавливаем его, и используем.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.05.2013, 13:56  [ТС] 13
Цитата Сообщение от UI Посмотреть сообщение
Cambria Math устанавливается при установке пакета OpenOffice),
А можно его отдельно поставить?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
26.05.2013, 17:22 14
Гугл говорит, что можно
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.05.2013, 19:53  [ТС] 15
Как при этом с лицензией? Могу ли таскать его за свой программой? Должна ли она в этом случае быть бесплатной? А иметь открытый исходник? Можно ли решить задачу вообще не текстовыми средствами?
0
Заблокирован
Автор FAQ
26.05.2013, 21:12 16
Цитата Сообщение от taras atavin Посмотреть сообщение
Как при этом с лицензией? Могу ли таскать его за свой программой? Должна ли она в этом случае быть бесплатной? А иметь открытый исходник? Можно ли решить задачу вообще не текстовыми средствами?
- нарисуй скобку пикселами. Сделай матрицу пикселов для скобки и делай её BitBlt в нужную часть рабочей области. В принципе можно сделать рисунок скобки в ресурсах программы и не мучатся с созданием матрицы пикселов а просто отрисовывать его в нужном месте.

Добавлено через 2 минуты
Загрузка изображения bmp из ресурсов

там опен код и опен проект. Делай под свои нужды со скобкой
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
27.05.2013, 05:42  [ТС] 17
Ресурс то будет фиксированного размера.

Добавлено через 1 минуту
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
там опен код и опен проект.
То есть gnu и если я что то юзаю, то тоже должен делать gnu?
0
Заблокирован
Автор FAQ
27.05.2013, 07:20 18
strechblt расстянет и сожмет до нужного размера,вдруг ты не знал.На счет GNU разви он поддерживает апи?Юзай тогда опенжл.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
27.05.2013, 07:22  [ТС] 19
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
bitblt расстянет и сожмет до нужного размера,вдруг ты не знал.
Растры удовлетворительно масштабируются только с увеличением и только в целое количество раз. Но и то не качественно, а только удовлетворительно, а качественно не масштабируются вообще. Именно поэтому растровые шрифты ограничиваются определённым набором размеров. Именно поэтому epson styls 820 не способен распечатать читабельный curier new высотой ни 16, ни 12 кеглей, а 10-ти, и 14-ти и 18-ти кеглевый curier new с этого принтера читается легко, а ты мне предлагаешь масштабировать растровой окаменелостью, вышедшей за долго его драйвера.

Добавлено через 1 минуту
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
На счет GNU разви он поддерживает апи?Юзай тогда опенжл.
gnu - это вид лицензии, к апям вообще не относится.
0
-=ЮрА=-
27.05.2013, 10:07     Положить фигурную скобку на бок и растянуть
  #20

Не по теме:

taras atavin, по-моему ты сам не знаешь чего хочешь. Я тебе писал не о шрифте а о битмапе который в пределах разумного растянется как надо. Под словом GNU я понимал GNU compiler
http://ru.wikipedia.org/wiki/G... Collection

Он используется как стандартный компилятор для свободных UNIX-подобных операционных систем.
что ты под этим подразумевал мне уже невдомёк. Я и написал что на Х-ах юзать АПи не выйдет, потому вообще нечего смотерть в сторону шрифтов и растров. Если же у тебя есть студия то не ломай мозг здесь собравшимся : либо делай по шрифту либо по битмапу, либо вообще через SetPixel рисуй скобку - других решений нет.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2013, 10:07

Как "положить" Expolrer.exe или вызвать/положить любое другое приложение
Я вот написал псевдо троян, для удаленного управления второго компа, ведь лень вставать с одного...

Бок сортировки
Всем привет! Ребята помогите по такой проблеме. У меня не правильно сортируется поле с...

как повернуть массив на бок?
помогите с алгоритмом, который бы вращал произвольную матрицу по часовой стрелке на 90 градусов ...

Pascal. Составить бок-схему.
Program Hello; Var Name: String; BEGIN Write('Как тебя зовут ? '); ReadLn(Name);...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru