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

Вывод текста в MessageBox

12.11.2020, 11:02. Показов 3400. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Есть такая задача, в диалоговом окне (WinApi) размещено поле для ввода текста и кнопка, при нажатии на кнопку должно появляться сообщение с введенным текстом.
Вот фрагмент кода, обработчик нажатия на кнопку, но в сообщении текст из edit не выводится.

C++
1
2
3
4
5
6
7
8
9
10
11
case IDC_BUTTON:
        {
            
            TCHAR Buffer[512];
            TCHAR a = GetDlgItemText(hwmd,IDC_EDIT1, Buffer, 1000);
            wsprintf(Buffer, TEXT("Значение", a),a);
            MessageBox(hwmd, Buffer, L"Вывод", MB_OK | MB_ICONINFORMATION);
            
        }
 
        break;
Подскажите, пожалуйста, что нужно изменить?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.11.2020, 11:02
Ответы с готовыми решениями:

Вывод расположения исполняемых файлов процессов в MessageBox
Прошу не кидаться тапками. Пытаюсь понять чужой код (кажется, пример из msdn взял). Хочу вывести расположения исполняемых файлов процессов...

Цвет текста в MessageBox
Могу выводить цветной текст в Button, Static. Хотелось бы еще уметь и в MessageBox("Text"); Добавлено через 18 часов 47 минут ...

MessageBox выводит иероглифы место текста с++
CString sMsg; char buf; int nRead = fileIn.Read( buf , sizeof(buf)); sMsg.Format( L"%s", buf); MessageBox( sMsg,...

2
 Аватар для GoodWeather
886 / 588 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
12.11.2020, 16:00
Для начала у вас ошибка использования макроса TEXT(). И я даже сперва подумал как же вы "нажимаете кнопку", если проект даже компилироваться не должен...
Но вчитавшись... Очень любопытно. Оно действительно будет компилироваться. Впервые вижу некорректное использование TEXT(), которое компилируется.

Добавлено через 1 минуту
Вы написали: TEXT("Значение", a) - в этот макрос нельзя оборачивать переменные или выражения. Но вы написали переменную через запятую - и она просто удачно вынесется за скобки.
На будущее - внутрь TEXT() можно писать только строку в кавычках, без префиксов, одну сплошную, никаких переменных, никаких функций.

Добавлено через 3 минуты
Дальше, вы используете TCHAR и функции без A/W на конце. В принципе это хорошо. Только тогда нельзя передавать в API-функции строковые константы явного формата: L"Вывод", должно быть TEXT("Вывод").

Добавлено через 2 минуты
Я не очень понял:
Цитата Сообщение от Мышка-нарушка Посмотреть сообщение
нажатия на кнопку, но в сообщении текст из edit не выводится.
Вообще нету окошка, или текст в нём не тот что вы ждали?
Если нет окошка - надо проверить заходит ли вообще в обработчик, может константа IDC_BUTTON не от этой кнопки.

Добавлено через 6 минут
Вы объявили буфер Buffer размером 512. В edit может быть так много букв? Ну окей, допустим с запасом.
Но зачем же вы обманули функцию GetDlgItemText(), что размер буфера 1000?
Если текст в edit на самом деле окажется больше 512 - то из-за этого обмана скорее всего будет ошибка и программа вылетит.

Добавлено через 8 минут
Кстати, функция возвращает не TCHAR (символ), а UINT (целое число).
...а вы его в wsprintf... ага...

Добавлено через 1 минуту
Видимо вам надо было два разных буфера. Один для получения текста из edit, и второй для формирования сообщения.
1
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
12.11.2020, 20:24
Лучший ответ Сообщение было отмечено Мышка-нарушка как решение

Решение

Цитата Сообщение от Мышка-нарушка Посмотреть сообщение
Подскажите, пожалуйста, что нужно изменить?
C++
1
2
3
4
5
6
7
case IDC_BUTTON:
    {
        TCHAR Buffer[512] = {0};
        GetDlgItemText(hwmd, IDC_EDIT1, Buffer, 512);
        MessageBox(hwmd, Buffer, TEXT("Вывод"), MB_OK | MB_ICONINFORMATION);
    }
    break;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.11.2020, 20:24
Помогаю со студенческими работами здесь

Вывод messagebox
Необходимо вывести сообщение в messagebox,после выоа программа должна работать недожидаясь никаких действий,как это реолизовать

вывод информацию о файле в Messagebox
Такой вопрос: каким образом можно вывести информацию о файле в Messagebox?

Вывод числа double из консоли в Messagebox
"Осуществить заданные в командной строке арифметические действия (сложение и вычитание) над целыми числами и вывести в простейшее...

Вывод значения типа int с помощью MessageBox
Здравствуйте! Изучаю C++ очень мало ( ~2-3 часа ) и создаю консольную игру. Мне надо вывести значение int, в MessageBox, пробывал через...

Вывод слов, начинающихся с гласных букв в MessageBox
Добрый вечер! Прошу помощи в решении, есть программа, код которой ниже, которая выводит слова начинающиеся с гласных букв из .txt...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru