Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/68: Рейтинг темы: голосов - 68, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 21.09.2012
Сообщений: 67

MessageBox(YES,No,Cancel)

22.03.2013, 16:13. Показов 14159. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.Помогите разобраться с кодом.Где об этом можно прочитать на русском языке.Ссылку пожалуйста пришлите или объясните пожалуйста поподробнее. Это MFC приложение.Пишу в Visual C++2010.

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
void CYcldialg_oknaDlg::OnBnClickedYesnocancel()
{
    // TODO: добавьте свой код обработчика уведомлений
    //###############################################
    // Здесь начинается наш код
    int iResults; //В этой переменной будет сохранятся выбор кнопки
    // спрашиваем пользователя
    iResults = MessageBox("Press the Yes, No,or Cancel button","Yes,No, Cancel Dialog",MB_YESNOCANCEL|MB_ICONINFORMATION);
 
    //////Press the Yes, No,or Cancel  "Yes,No, Cancel Dialog"
    // Определяем ,какая кнопка была нажата пользователем
    // сообщаем пользователю, какая кнопка была нажата
    switch(iResults)
    {
    case IDYES: //кнопка Yes ?
        m_sResults="Yes! YES!YES!");
        break;
    case IDNO: //кнопка NO ?
        m_sResults="NO, No, No, NO");
        break;
    case IDCANCEL://кнопка Cancel ?
        m_sResults="Sorry, canceled.";
        break;
    }
    // Обновляем диалоговое окно
    UpdateData(FALSE);
 
    //#####################################
    // Здесь заканчивается мой код
    //####################################
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2013, 16:13
Ответы с готовыми решениями:

MessageBox
Здравствуйте! Я сейчас обучаюсь по видео урокам... У меня Microsoft Visual C++ Express А на видео Microsoft Visual .NET.. Но там всёравно...

MessageBox
if ((MessageBox::Show( "Are you sure?", "Exit", MessageBoxButtons::YesNo, MessageBoxIcon::Question) ==...

Messagebox
Здравствуйте! Я решил выучить язык С++.При создании программы самой простой о_О столкнулься с проблемой "Messagebox" void...

8
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.03.2013, 16:21
Цитата Сообщение от romanbo Посмотреть сообщение
iResults = MessageBox("Press the Yes, No,or Cancel button","Yes,No, Cancel Dialog",MB_YESNOCANCEL|MB_ICONINFORMATIO N);
- светишь меседжбокс (выскакивающее окно) с тремя кнопочками MB_YESNOCANCEL. Возвратом функции MessageBox является код кнопки на которую нажал юзер, вот ниже и идёт разбор какая же кнопка была нажата
Цитата Сообщение от romanbo Посмотреть сообщение
switch(iResults)
{
case IDYES: //кнопка Yes ?
m_sResults="Yes! YES!YES!");
break;
case IDNO: //кнопка NO ?
m_sResults="NO, No, No, NO");
break;
case IDCANCEL://кнопка Cancel ?
m_sResults="Sorry, canceled.";
break;
}
m_sResults - контрол скорее всего EditBox с типом CString куда записывается строковое опи\сание нажатия


Цитата Сообщение от romanbo Посмотреть сообщение
UpdateData(FALSE);
- передаёт данные в окно и контролы, т.е EditBox будет светить тот текст который ему передали в switch

Добавлено через 1 минуту

Не по теме:

Единственное что меня смущает это

Цитата Сообщение от romanbo Посмотреть сообщение
MB_YESNOCANCEL
сейчас проверю действительно ли такая комбинация существует

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.03.2013, 16:28
Да
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
MB_YESNOCANCEL
существует ниже упрощённый алгоритм под консоль
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
#include <windows.h>
#include <iostream>
using namespace std;
 
int main()
{
    HWND hWnd = GetForegroundWindow();
    int iResult = MessageBox
        (
            hWnd,   
            "Êîíñîëü íèæå äàñò òåêñòîâîå îïèñàíèå êàêàÿ êíîïêà áûëà íàæàòà",
            "Íàæìèòå îäíó èç êíîïîê",
            MB_YESNOCANCEL  |   MB_ICONINFORMATION
        );
    switch(iResult)
    {
        case IDYES: //êíîïêà Äà
            cout<<"YOU PRESS BUTTON YES"<<endl;
            break;
        case IDNO: //êíîïêà Íåò
            cout<<"YOU PRESS BUTTON NO"<<endl;
            break;
        case IDCANCEL: //êíîïêà Îòìåíà
            cout<<"YOU PRESS BUTTON CANCEL"<<endl;
            break;
    }
    system("pause");
    return 0;
}
Миниатюры
MessageBox(YES,No,Cancel)   MessageBox(YES,No,Cancel)  
0
0 / 0 / 0
Регистрация: 21.09.2012
Сообщений: 67
22.03.2013, 17:03  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- светишь меседжбокс (выскакивающее окно) с тремя кнопочками MB_YESNOCANCEL. Возвратом функции MessageBox является код кнопки на которую нажал юзер, вот ниже и идёт разбор какая же кнопка была нажата


m_sResults - контрол скорее всего EditBox с типом CString куда записывается строковое опи\сание нажатия


- передаёт данные в окно и контролы, т.е EditBox будет светить тот текст который ему передали в switch

Добавлено через 1 минуту

Не по теме:

Единственное что меня смущает это
сейчас проверю действительно ли такая комбинация существует


iResults = MessageBox("Press the Yes, No,or Cancel button","Yes,No, Cancel Dialog",MB_YESNOCANCEL|MB_ICONINFORMATIO N);
я понимаю,но не работает код.заранее спасибо.

Добавлено через 4 минуты
Спасибо Большое,но это не в вижуал с++ ,а мне надо в этой среде.Я думаю,что тут ошибка.Но не знаю точно.
iResults = MessageBox("Press the Yes, No,or Cancel button","Yes,No, Cancel Dialog",MB_YESNOCANCEL|MB_ICONINFORMATIO N);
Подчеркивает комп строки в кавычках

Добавлено через 29 минут
Ошибка 1 error C2664: CWnd::MessageBoxW: невозможно преобразовать параметр 1 из "const char [35]" в "LPCTSTR" c:\users\elena\documents\visual studio 2010\projects\ycl.dialg_okna\ycl.dialg_o kna\ycl.dialg_oknadlg.cpp 169 1 Ycl.dialg_okna


А как от этого глюка избавиться.Теперь это показывает.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.03.2013, 17:11
Цитата Сообщение от romanbo Посмотреть сообщение
Ошибка 1 error C2664: CWnd::MessageBoxW: невозможно преобразовать параметр 1 из "const char [35]" в "LPCTSTR" c:\users\elena\documents\visual studio 2010\projects\ycl.dialg_okna\ycl.dialg_o kna\ycl.dialg_oknadl g.cpp 169 1 Ycl.dialg_okna
- переставь тип шрифта проекта с юникода на Multy-Byte-CharacterSet

полный ответ по данной проблемме здесь
Из файла в ListBox (MFC)


Цитата Сообщение от romanbo Посмотреть сообщение
но это не в вижуал с++
- а что по твоему вижуал Си++ ну мне просто интересно как ты понимаешь понятие Visual C++ и каково его отличие от С++?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.03.2013, 17:20
Ладно вот проект, всё равно feedback-а не наблюдаю, потому ниже голый преокт скрин и экзешник
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
void CMFC3ButtonMsgBoxDlg::OnOK() 
{
    // TODO: Add extra validation here
    int iResult = MessageBox
        (   
            "Ïðèëîæåíèå íèæå äàñò îïèñàíèå êàêàÿ êíîïêà áûëà íàæàòà",
            "Íàæìèòå îäíó èç êíîïîê",
            MB_YESNOCANCEL  |   MB_ICONINFORMATION
        );
    switch(iResult)
    {
        case IDYES: //êíîïêà Äà
            m_Result = "YOU PRESS BUTTON YES";
            break;
        case IDNO: //êíîïêà Íåò
            m_Result = "YOU PRESS BUTTON NO";
            break;
        case IDCANCEL: //êíîïêà Îòìåíà
            m_Result = "YOU PRESS BUTTON CANCEL";
            break;
    }
    UpdateData(false);
    //CDialog::OnOK();
}
Миниатюры
MessageBox(YES,No,Cancel)  
Вложения
Тип файла: rar MFC3ButtonMsgBox.exe.rar (3.9 Кб, 17 просмотров)
Тип файла: rar MFC3ButtonMsgBox_VS6.0_proj.rar (21.5 Кб, 18 просмотров)
0
0 / 0 / 0
Регистрация: 21.09.2012
Сообщений: 67
22.03.2013, 17:34  [ТС]
Я новичок,изучаю Visual c++Я понимаю,что может что то недопонимаю.Спасибо Вам за помощь.Ищу эту позицию,а к моему сожалению не могу найти.А понимаю так.Это визуальная среда для С++.Где находиться окно
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
переставь тип шрифта проекта с юникода на Multy-Byte-CharacterSet
Где то переводиться шрифт этот.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
22.03.2013, 17:58
Цитата Сообщение от romanbo Посмотреть сообщение
Это визуальная среда для С++.Где находиться окно
- ну так вот открою страшную истину Visual C++ и С++ это одно и тоже, единственное что подразумевает приставка Visual - это то что в коде будут методы для обмена данными с контролами окна и всего-то
Это не другой язык не другая среда, это просто условная приставочка которой начинающие придают какую то особую магию.
Перед глазами два проекта - один консоль, другой MFC Dialog - там есть какая то разница?Всё тоже самое, только для CDialog прототип MessageBox перегружен и не сожержит параметра HWND ибо бокс для окна вызывается в остальном я спокойно мог написать в коноли
string m_Result = "blablabla"; и вывел бы её в cout

Так если брать у нас есть API C++ MFC C++ Forms C++ и обычный C++ (согласись на бред смахивает)
Всё это заблуждения, есть два языка Си и С++ и разнообразные методы работы с библиотеками GUI которые дают приставку Visual, но это ни сколь не значит что подразумевается какой то абстарктный другой С++ нежели тот который печатает в консоли Hello world.

Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от romanbo Посмотреть сообщение
Ищу эту позицию,а к моему сожалению не могу найти.
- найти её можно в Project Properties, по свободе нарежу побольше скринов и прилеплю сюда

0
0 / 0 / 0
Регистрация: 21.09.2012
Сообщений: 67
22.03.2013, 18:04  [ТС]
Юра Спасибо большое .Нашел где это меняется и все пошло.Сейчас буду дальше дела делать.Этот момент пошел.Спасибо еще раз за помошь.Я не всегда могу найти что то по сайту.Например- выскакивает сообщение.Щелкаешь по нему,а в сообщение не переходишь.Мне трудно по сайту перемещаться.Возможно что то я недопонимаю.Еще раз спасибо за информацию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.03.2013, 18:04
Помогаю со студенческими работами здесь

MessageBox
Компилятор ругается на следующик код: MessageBox(hWnd,&quot;Ошибка инициализации DirectX&quot;,&quot;Error&quot;,MB_OK); а вот то что пишет: ...

MessageBox
Задача: вызвать MessageBox из ассемблерной вставки в Visual Studio . ...

MessageBox в консоли
Здравствуйте...Имеется программа Windows Form Application на MSVS2010 и она обращается к исходнику, написанному на С....В нем есть...

функция MessageBox
Здраствуйте уважаемые программисты! :) Я недавно начал учить Visual C++ (позавчера) и возникли проблемы с пониманием.Вот проблема: я не...

MFC и MessageBox
Объясните новичку, пытающемуся освоить оконные приложения, что я делаю не так. Второй день бьюсь с этой проблемой


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru