Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как передать "параметр" в строку для MessageBox

8.2K
09 декабря 2006 года
mohito
35 / / 24.11.2005
Задача:
Вывести сообщение об ошибке вида:
"Ошибка в Таблице №x строке №y."
с помощью MessageBox()

Вопрос: Как сформировать такую строку(с переменными x и y) и правильно передать её функции MessageBox?

P.S.
Предугадывая вопрос:"Почему MessageBox?" - отвечу:"я плохо знаком с функциями API отвечающими за интерфейс, по этому не знаю другого простого способа вывести сообщение об ошибке"
Если кто-то подскажет как это грамотно сделать буду очень признателен;)
257
09 декабря 2006 года
kosfiz
1.6K / / 18.09.2005
вот пример:
 
Код:
int x,y;
char result[80];
x=10;
y=12;
wsprintf((LPSTR)result,"Ошибка в Таблице №%d строке №%d.",x,y);
MessageBox(0,result,"",0);
3.7K
09 декабря 2006 года
Techtor
43 / / 12.09.2004
MessageBox, на самом деле, довольно хороший способ известить об ошибке - обращает на себя внимание, сопровождаетсья звуком, можно спросить о дальнейших действиях при ошибке и обработать ответ (Да/нет/отмени и т.д.).
Теперь конкретно по твоему вопросу: ты используешь MFC ? Или пишеш простое приложение Windows? Для первого варианта лучше использовать код:
 
Код:
CString a;
    a.Format("Ошибка в Таблице №%.i строке №%.i.",x,y);
    MessageBox(a);

сочетание %.i указывает, что на этом месте будет значение переменной типа инт.. Потом, после закрывающих кавычек и запятой идет перечисление этих самых переменны. х, у - номера таблици и строки с ошибкой.
Если ты пишешь простое приложение Виндавз без исспользования классов MFC, то все чуть сложнее:
 
Код:
char i[10];     //Переменная для хранения номера таблицы/строки
char rez[128];  //Строка для вывода сообщения
strcpy(rez,"Ошибка в Таблице №");//Копируем начало сообщения
itoa(x,i,10);       //Преобразуем номер таблицы в текстовый формат, сохраняем -> i
strcat(rez,i);       //Добавляем в наше сообщение номер таблицы
strcat(rez," строке №");    //Добавляем в наше соощение продолжение текста
itoa(y,i,10);          //Преобразуем номер строки в текстовый формат, сохраняем -> i
strcat(rez,i);  //Добавляем в наше сообщение номер строки
MessageBox(rez);            // выводим ошибку :)


Вообщем примерно так. х и у - соответсвенно номера таблицы и строки
8.2K
09 декабря 2006 года
mohito
35 / / 24.11.2005
Вопрос решен. Спасибо за конструктивные ответы=)
240
11 декабря 2006 года
aks
2.5K / / 14.07.2006
Цитата:

char i[10]; //Переменная для хранения номера таблицы/строки
char rez[128]; //Строка для вывода сообщения
strcpy(rez,"Ошибка в Таблице №");//Копируем начало сообщения
itoa(x,i,10); //Преобразуем номер таблицы в текстовый формат, сохраняем -> i
strcat(rez,i); //Добавляем в наше сообщение номер таблицы
strcat(rez," строке №"); //Добавляем в наше соощение продолжение текста
itoa(y,i,10); //Преобразуем номер строки в текстовый формат, сохраняем -> i
strcat(rez,i); //Добавляем в наше сообщение номер строки
MessageBox(rez); //


Извращенец - есть же sprintf )))

3.7K
12 декабря 2006 года
Techtor
43 / / 12.09.2004
Запямятовал я про sprintf, не пользовался им давно :D
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог