Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 25.02.2021
Сообщений: 235

Как сделать перенос текста как только предложение доходить до границы окна

17.05.2022, 17:34. Показов 1772. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <windows.h>
#include <windowsx.h>
#pragma
 
 
/* Прототип используемой в программе функции */
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
void OnPaint(HWND);//Прототип функции OnPaint
void OnDestroy(HWND);//Прототип функции OnDestroy
/*Главная функция WinMain */
int main(HINSTANCE hInst, HINSTANCE, LPSTR, int)
{
    char szClassName[] = "MainWindow";
    char szTitle[] = "Война и мир. Том 2.";
    MSG Msg;
    WNDCLASS wc;
    HWND hConsole = GetConsoleWindow();
    ShowWindow(hConsole, SW_HIDE);
    /* Регистрация класса главного окна */
    ZeroMemory(&wc, sizeof(wc));
    wc.lpfnWndProc = WndProc;
    wc.hInstance = hInst;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = GetStockBrush(WHITE_BRUSH);
    wc.lpszClassName = szClassName;
    RegisterClass(&wc);
    /* Создание главного окна и отображение его на экране */
    HWND hwnd = CreateWindow(szClassName, szTitle,
        WS_OVERLAPPEDWINDOW, 250, 150, 400, 200,
        HWND_DESKTOP, NULL, hInst, NULL);
    ShowWindow(hwnd, SW_SHOWNORMAL);
    /* Организация цикла обнаружения сообщений */
    while (GetMessage(&Msg, NULL, 0, 0))
        DispatchMessage(&Msg);
    return 0;
}
/* Оконная функция WndProc главного окна */
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
        HANDLE_MSG(hwnd, WM_PAINT, OnPaint);//Обработка сообщения WM_PAINT
        HANDLE_MSG(hwnd, WM_DESTROY, OnDestroy);//Обработка сообщения WM_DESTROY
    default:
        return(DefWindowProc(hwnd, msg, wParam, lParam));
    }
}
/*Функция обработки сообщения WM_PAINT*/
void OnDestroy(HWND)
{
    PostQuitMessage(0);
}
/*Функция обработки события WM_PAINT*/
void OnPaint(HWND hwnd)
{
    char szText[] = "28-го октября Кутузов с армией перешел на левый берег Дуная и в первый раз остановился, положив Дунай между собой и главными силами французов. 30-го он атаковал находившуюся на левом берегу Дуная дивизию Мортье и разбил ее. В этом деле в первый раз взяты трофеи: знамя, орудия и два неприятельские генерала.";
    PAINTSTRUCT ps;//Структура, требуемая для рисования в рабочей области
    HDC hdc = BeginPaint(hwnd, &ps);//Получение контекста устройства
    TextOut(hdc, 5, 30, szText, strlen(szText));//Вывод строки текста
    EndPaint(hwnd, &ps);//Освобождение контекста устройства
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.05.2022, 17:34
Ответы с готовыми решениями:

Как пофиксить выпадание текста Label за границы окна?
Пишу самый обычный калькулятор(чисто для первой практики в написании GUI). Захотел я к нему прикрутить автоматическое...

Как сделать перенос текста в Outlook
Как сделать перенос на следующую строку в тексте вставляемом в тело письма Sub CreateSign() Dim Message As MailItem Set Message =...

Как в меню сделать перенос текста на другую строку?
Добрый день всем! Подскажите пожалуйста, как в меню сделать перенос текста на другую строку? Пробовал &lt;br&gt;. В горизонтальном...

4
1 / 1 / 0
Регистрация: 25.02.2021
Сообщений: 235
17.05.2022, 17:53  [ТС]
прикрепляю скрин окна
Миниатюры
Как сделать перенос текста как только предложение доходить до границы окна  
0
1 / 1 / 0
Регистрация: 25.02.2021
Сообщений: 235
17.05.2022, 18:05  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void OnPaint(HWND hwnd)
{
    char szText[] = "28-го октября Кутузов с армией перешел на левый берег Дуная и в      ";
    char szTexts[] = "первый раз остановился, положив Дунай между собой и главными       ";
    char szTextss[] = "силами французов. 30-го он атаковал находившуюся на левом берегу ";
    char szTextsss[] = "Дуная дивизию Мортье и разбил ее.";
    PAINTSTRUCT ps;//Структура, требуемая для рисования в рабочей области
    HDC hdc = BeginPaint(hwnd, &ps);//Получение контекста устройства
    TextOut(hdc, 5, 30, szText, strlen(szText));//Вывод строки текста
    TextOut(hdc, 5, 45, szTexts, strlen(szTexts));
    TextOut(hdc, 5, 60, szTextss, strlen(szTextss));
    TextOut(hdc, 5, 75, szTextsss, strlen(szTextsss));
    
    
    EndPaint(hwnd, &ps);//Освобождение контекста устройства
}
я конечно сделал так, но явно не это предусмотрено заданием
0
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,116
17.05.2022, 18:18
Лучший ответ Сообщение было отмечено Uther как решение

Решение

Uther, есть и другие функции для вывода текста, не только TextOut. Именно TextOut не выводит многострочный текст. Посмотрите функцию DrawText, у неё есть флаги для нужного вам форматирования.
1
1 / 1 / 0
Регистрация: 25.02.2021
Сообщений: 235
17.05.2022, 18:22  [ТС]
Ygg, спасибо, посмотрю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.05.2022, 18:22
Помогаю со студенческими работами здесь

Как сделать перенос текста внутри одной ячейки StringGrid?
Как сделать перенос текста внутри одной ячейки StringGrid? Чтобы текст был в несколько строк в одной ячейке. Может свойство какое есть? Чет...

Как сделать перенос текста с новой строки в той же ячейке в TableView?
Здравствуйте,подскажите пожалуйста, как сделать перенос строки с ячейке TableView, что бы выводился весь текст сразу? Нашел только свойства...

Как сделать перенос строки в Javascript при выводе текста на странице?
&lt;head&gt; &lt;script src=&quot;javascriptchat.js&quot; defer&gt; &lt;/script&gt; &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;csschat.css&quot;&gt; &lt;/head&gt; ...

Как сделать перенос текста в ячейке qtableView, если не влезает в ширину столбца
Ни нашел не где примера как сделать перенос текста в ячейки если не влезает в ширину столбца. Вот есть у меня таблица qtableView. ...

Как изменить положение текста в ячейке экселя и как выделить границы ячейки?
как изменить положение текста в ячейке экселя и как выделить границы ячейки?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru