From: Людмила Емельянова To:Sent: Thursday, November 09, 2000 11:32 PM Subject: MFCByStep Добрый день, Артем! Присоединяюсь ко всем, кто восторгается твоим сайтом. Можно тебя попросить рассказать о форматированном выводе текста в VC++. Например, нужно вывести текст Добрый день, Артем! Как твои дела? И хотелось бы вывести без использования циклов. Т.е. s=_T("Добрый день, Артем! \n \n Как твои дела? ") Однако, не выводит как надо. Если это очень простой вопрос, то подскажи по е-mail. Спасибо. Люда.
Один из удобных способов - это использование класса CString. У этого класса есть функция Format(), которая позволяет производить форматирование строк. Давайте посмотрим сразу пример. Этот код привязан к кнопке на диалоговой панели:
void CTest1Dlg::OnButton1() { CString s; s="Добрый день, Артем! \n \n Как твои дела? "; AfxMessageBox(s); }
А вот и результат.
Как видите эта функция вообще не понадобилась, но все-таки что она умеет делать ???
void Format( LPCTSTR lpszFormat, // строка форматирования ...... // параметры );
Эта функция аналог printf() и соответственно все форматы для printf() здесь тоже работают. Давайте посмотрим:
void CTest1Dlg::OnButton1() { CString s; double d; d=2.3; s.Format("%e %s",d,"Hello"); AfxMessageBox(s); }
И это тоже сработает. Идея простая. Хотите форматировать сроки - используйте CString.Format() по правилам printf().