Шаг 269 - Форматирование строк в MFC

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);	
}

А вот и результат.

269.gif (2343 b)

Как видите эта функция вообще не понадобилась, но все-таки что она умеет делать ???

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().


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 10.11.2000