Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
2 / 2 / 2
Регистрация: 05.01.2018
Сообщений: 125

Как в с++ в окне windows вывести текст с прокруткой

05.01.2018, 15:46. Показов 3401. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Как в с++ в окне windows вывести текст как в текстовом редакторе, с прокруткой, но без возможности изменить его?
Редактор Falcon c++, функции как в студио нет.
Я начинающий. Можно поподробней?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.01.2018, 15:46
Ответы с готовыми решениями:

Как вывести заданный текст в окне?
1. как вывести в окне тест? например привет мир текст поверх бмп картинки. странно почему такой простой программы не видел в...

Как открыть страницу в модальном окне шириной почти на весь экран с прокруткой
У меня задача - есть htm страница с большим текстом (книга). Эту страницу мне надо открыть в модальном окне. Окно должно быть достаточно...

Как вывести текст (сообщение), открывающееся в отдельном окне
Как в данном коде вывести текст,сообщение,открывающееся в отдельном окне. include "win64ax.inc" org 100h ...

18
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
05.01.2018, 16:01
https://msdn.microsoft.com/ru-... s.85).aspx
1
2 / 2 / 2
Регистрация: 05.01.2018
Сообщений: 125
05.01.2018, 17:33  [ТС]
но здесь для студио код, а студио у меня нет (точнее есть, но не устанавлюю), в другой среде не работает
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
05.01.2018, 17:35
Цитата Сообщение от vdprog110 Посмотреть сообщение
в другой среде не работает
ты шутишь?
0
2 / 2 / 2
Регистрация: 05.01.2018
Сообщений: 125
05.01.2018, 17:50  [ТС]
нет, не шучу. возможно, я не знаю, какие файлы добавить
0
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
05.01.2018, 18:55
Здравствуйте!
С Falcon C++ не работал, но по скриншотам в сети можно заметить, что проекты Windows Application там создавать можно. Создайте проект такого типа, а затем перенесите туда код, на который Вам nmcf, ссылку дал. Ну, наверное придется его немного адаптировать...
0
2 / 2 / 2
Регистрация: 05.01.2018
Сообщений: 125
05.01.2018, 19:44  [ТС]
так и сделал, немного поменял код, ошибка
0
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
05.01.2018, 21:02
vdprog110, при компиляции ошибка возникает? Покажите ошибку народу - может совместными усилиями и справимся
0
2 / 2 / 2
Регистрация: 05.01.2018
Сообщений: 125
06.01.2018, 11:17  [ТС]
короче ошибка там где wchar и приставка или как ее L и оно не понимает, что это, говорит ошибка. Надо еще какой то хеадер добавить.
0
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
06.01.2018, 13:51
Попробуйте добавить
C++
1
#include <tchar.h>
Символ L показывает, что строка состоит из двухбайтовых символов (тип wchar_t). Попробуйте заменить на
C++
1
_T("qwerty")
Это макрос в заголовочном файле tchar.h
1
2 / 2 / 2
Регистрация: 05.01.2018
Сообщений: 125
06.01.2018, 15:39  [ТС]
'_T' was not declared in this scope
не работает. попробую вообще переписать код
0
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
06.01.2018, 17:08
Ну, если юникод не использовать, то можно просто все эти L и _T() поубирать...
Интересно, в IDE Falcon какой компилятор используется? Если при подключенном
C++
1
<tchar.h>
макрос не видит? Я бы на Вашем месте нашел этот заголовочный файл и посмотрел, определен этот макрос там или нет. В Visual Studio работает, да и компилятор MinGW тоже его видит.
0
2 / 2 / 2
Регистрация: 05.01.2018
Сообщений: 125
06.01.2018, 21:11  [ТС]
то я не правильно делал. проблемма пропала. сейчас проблемма только в том, что не определен case WM_COMMAND:
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
            switch (wParam) 
            { 
                case IDM_EDUNDO: 
                    // Send WM_UNDO only if there is something to be undone. 
 
                    if (SendMessage(hwndEdit, EM_CANUNDO, 0, 0)) 
                        SendMessage(hwndEdit, WM_UNDO, 0, 0); 
                    else 
                    {
                        MessageBox(hwndEdit, 
                                   L"Nothing to undo.", 
                                   L"Undo notification", 
                                   MB_OK); 
                    }
                    break; 
 
                case IDM_EDCUT: 
                    SendMessage(hwndEdit, WM_CUT, 0, 0); 
                    break; 
 
                case IDM_EDCOPY: 
                    SendMessage(hwndEdit, WM_COPY, 0, 0); 
                    break; 
 
                case IDM_EDPASTE: 
                    SendMessage(hwndEdit, WM_PASTE, 0, 0); 
                    break; 
 
                case IDM_EDDEL: 
                    SendMessage(hwndEdit, WM_CLEAR, 0, 0); 
                    break; 
 
                case IDM_ABOUT: 
                    DialogBox(hInst,                // current instance 
                              L"AboutBox",           // resource to use 
                              hwnd,                 // parent handle 
                              (DLGPROC) About); 
                    break; 
 
                default: 
                    return DefWindowProc(hwnd, message, wParam, lParam); 
            } 
            break;
case IDM_EDUNDO оно не понимает
0
20 / 20 / 6
Регистрация: 16.11.2017
Сообщений: 87
07.01.2018, 03:21
C++
1
2
3
4
5
#define IDM_EDUNDO                      1090
#define IDM_EDCUT                       1091
#define IDM_EDCOPY                      1092
#define IDM_EDPASTE                     1093
#define IDM_EDDEL                       1094
Но вряд ли вам это поможет...
0
2 / 2 / 2
Регистрация: 05.01.2018
Сообщений: 125
07.01.2018, 13:25  [ТС]
хоть верьте, хоть нет, ставил вчера студио и там не работает! мой роутер перестал работать и пришлось студио удалить. не знает студио, что такое IDM_EDUNDO и все!
0
20 / 20 / 6
Регистрация: 16.11.2017
Сообщений: 87
07.01.2018, 14:06
префикс IDM_ в студии обычно обозначает пункт меню, естественно, что в пустом проекте их нету, как и IDM_ABOUT и (DLGPROC) About.

Так что в примере выше это не какие-то стандартные сообщения, а именно созданные пункты меню и их обработка в общем-то не нужна.

Поэтому для простого создания контрола можно всю обработку WM_COMMAND выкинуть и думаю тогда заработает.

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
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static HWND hwndEdit;
 
    TCHAR lpszLatin[] = L"Lorem ipsum dolor sit amet, consectetur "
        L"adipisicing elit, sed do eiusmod tempor "
        L"incididunt ut labore et dolore magna "
        L"aliqua. Ut enim ad minim veniam, quis "
        L"nostrud exercitation ullamco laboris nisi "
        L"ut aliquip ex ea commodo consequat. Duis "
        L"aute irure dolor in reprehenderit in "
        L"voluptate velit esse cillum dolore eu "
        L"fugiat nulla pariatur. Excepteur sint "
        L"occaecat cupidatat non proident, sunt "
        L"in culpa qui officia deserunt mollit "
        L"anim id est laborum.";
 
    switch (message)
    {
    case WM_CREATE:
        hwndEdit = CreateWindowEx(
            0, L"EDIT",   // predefined class 
            NULL,         // no window title 
            WS_CHILD | WS_VISIBLE | WS_VSCROLL |
            ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL,
            0, 0, 0, 0,   // set size in WM_SIZE message 
            hwnd,         // parent window 
            (HMENU)ID_EDITCHILD,   // edit control ID 
            (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE),
            NULL);        // pointer not needed 
 
                          // Add text to the window. 
        SendMessage(hwndEdit, WM_SETTEXT, 0, (LPARAM)lpszLatin);
 
        return 0;
 
    case WM_COMMAND:
        return DefWindowProc(hwnd, message, wParam, lParam);
 
    case WM_SETFOCUS:
        SetFocus(hwndEdit);
        return 0;
 
    case WM_SIZE:
        // Make the edit control the size of the window's client area. 
 
        MoveWindow(hwndEdit,
            0, 0,                  // starting x- and y-coordinates 
            LOWORD(lParam),        // width of client area 
            HIWORD(lParam),        // height of client area 
            TRUE);                 // repaint window 
        return 0;
 
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
 
    default:
        return DefWindowProc(hwnd, message, wParam, lParam);
    }
     return 0;
}
1
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
07.01.2018, 17:24
pewit, совершенно верно. Исходя из требований
Цитата Сообщение от vdprog110 Посмотреть сообщение
вывести текст как в текстовом редакторе, с прокруткой, но без возможности изменить его
в том примере больше половины лишнее. Можно безболезненно выкинуть.
0
20 / 20 / 6
Регистрация: 16.11.2017
Сообщений: 87
07.01.2018, 17:52
Без возможности менять текст самый простой вариант - добавить | WS_DISABLED в CreateWindowEx
0
2 / 2 / 2
Регистрация: 05.01.2018
Сообщений: 125
12.01.2018, 23:00  [ТС]
Спасибо! Наконец-то все получилось. Только я убрал из кода
C++
1
2
3
4
5
6
7
8
9
10
 hwndEdit = CreateWindowEx(
            0, L"EDIT",   // predefined class 
            NULL,         // no window title 
            WS_CHILD | WS_VISIBLE | WS_VSCROLL |
            ES_LEFT | ES_MULTILINE | ES_AUTOVSCROLL,
            0, 0, 0, 0,   // set size in WM_SIZE message 
            hwnd,         // parent window 
            (HMENU)ID_EDITCHILD,   // edit control ID 
            (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE),
            NULL);        // pointer not needed
(HMENU)ID_EDITCHILD, вместо него написал 0, пока не убрал, не заработало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.01.2018, 23:00
Помогаю со студенческими работами здесь

Вывести текст в отдельном окне
Нужно вывести условие задачи( несколько строк) в отдельном окне... Подскажите, пожалуйста с помощью какого компонента это можно сделать??...

Вывести текст по словам в окне с определенными интервалами времени
не получается вывести текст по словам в окне с определенными интервалами времени


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru