int x,y;
char result[80];
x=10;
y=12;
wsprintf((LPSTR)result,"Ошибка в Таблице №%d строке №%d.",x,y);
MessageBox(0,result,"",0);
Как передать "параметр" в строку для MessageBox
Вывести сообщение об ошибке вида:
"Ошибка в Таблице №x строке №y."
с помощью MessageBox()
Вопрос: Как сформировать такую строку(с переменными x и y) и правильно передать её функции MessageBox?
P.S.
Предугадывая вопрос:"Почему MessageBox?" - отвечу:"я плохо знаком с функциями API отвечающими за интерфейс, по этому не знаю другого простого способа вывести сообщение об ошибке"
Если кто-то подскажет как это грамотно сделать буду очень признателен;)
Код:
Теперь конкретно по твоему вопросу: ты используешь MFC ? Или пишеш простое приложение Windows? Для первого варианта лучше использовать код:
Код:
CString a;
a.Format("Ошибка в Таблице №%.i строке №%.i.",x,y);
MessageBox(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); // выводим ошибку :)
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); // выводим ошибку :)
Вообщем примерно так. х и у - соответсвенно номера таблицы и строки
Вопрос решен. Спасибо за конструктивные ответы=)
Цитата:
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 )))
Запямятовал я про sprintf, не пользовался им давно :D