Вывод текста в произвольной ориентации
От: eva Беларусь  
Дата: 09.06.02 11:59
Оценка:
Есть необходимость выводить текст в произвольной ориентации.Привожу текст программы:


//m_pMemDC-указатель на контекст
//устройства вывода в памяти.
CString str = "текст";
int scF = ...;//Расчёт угла поворота
HFONT font = ::CreateFont(20,0,scF,0,0,FALSE,FALSE,
 FALSE,0,0,0,0,0,NULL);
int oldFont = m_pMemDC->SelectObject(CFont::FromHandle(font));
COLORREF oldCol = m_pMemDC->SetTextColor(RGB(160,80,0));
CPoint pO = ...;//Расчёт координаты вывода
m_pMemDC->TextOut(p0.x,p0.y,(LPCTSTR)str,str.GetLength());

Под Windows 2000 всё выводится там где нужно и как нужно. Под Windows 98 выводится где нужно и повёрнут, но цвет светло светло серый и только. Что надо делать в 98-м,что бы выводилось как следует?
Re: Вывод текста в произвольной ориентации
От: eva Беларусь  
Дата: 13.06.02 05:07
Оценка:
Здравствуйте eva, Вы писали:

eva>Есть необходимость выводить текст в произвольной ориентации.Привожу текст программы:



eva>
eva>//m_pMemDC-указатель на контекст
eva>//устройства вывода в памяти.
eva>CString str = "текст";
eva>int scF = ...;//Расчёт угла поворота
eva>HFONT font = ::CreateFont(20,0,scF,0,0,FALSE,FALSE,
eva> FALSE,0,0,0,0,0,NULL);
eva>int oldFont = m_pMemDC->SelectObject(CFont::FromHandle(font));
eva>COLORREF oldCol = m_pMemDC->SetTextColor(RGB(160,80,0));
eva>CPoint pO = ...;//Расчёт координаты вывода
m_pMemDC->>TextOut(p0.x,p0.y,(LPCTSTR)str,str.GetLength());
eva>

eva>Под Windows 2000 всё выводится там где нужно и как нужно. Под Windows 98 выводится где нужно и повёрнут, но цвет светло светло серый и только. Что надо делать в 98-м,что бы выводилось как следует?

I am sorry!
Был приведён не полный текст. Полный текст:
//m_pMemDC-указатель на контекст
//устройства вывода в памяти.
CString str = "текст";
int scF = ...;//Расчёт угла поворота
HFONT font = ::CreateFont(20,0,scF,0,0,FALSE,FALSE,
 FALSE,0,0,0,0,0,NULL);
int oldFont = m_pMemDC->SelectObject(CFont::FromHandle(font));
COLORREF oldCol = m_pMemDC->SetTextColor(RGB(160,80,0));
int oldBkMode = m_pMemDC->SetBkMode(TRANSPARENT);
CPoint pO = ...;//Расчёт координаты вывода
m_pMemDC->>TextOut(p0.x,p0.y,(LPCTSTR)str,str.GetLength());

Так в 98-м не работает. А если
int oldBkMode = m_pMemDC->SetBkMode(OPAQUE);

то работает.
Информация в MSDN на эту тему:
MSDN
Knowledge Base
Windows Development
Win32 Software Development Kit
BUG: TrueType Glyphs Wrong Color Rasterized to 8bpp DIBSection
Re[2]: Вывод текста в произвольной ориентации
От: Ильин Евгений Вячеславович http://jenyay.net
Дата: 16.06.02 04:10
Оценка:
Здравствуйте eva, Вы писали:

eva>Так в 98-м не работает. А если

eva>
eva>int oldBkMode = m_pMemDC->SetBkMode(OPAQUE);
eva>

eva>то работает.

Интересно. Первым способом у меня и в W2k не работало. Буквально неделю назад делал.
Софт, исходники и фото
Re[3]: Вывод текста в произвольной ориентации
От: eva Беларусь  
Дата: 16.06.02 10:05
Оценка:
Здравствуйте Ильин Евгений Вячеславович, Вы писали:

ИЕВ>Интересно. Первым способом у меня и в W2k не работало. Буквально неделю назад делал.

Сегодня (16.06.2002) проверил (Windows 2000, VS 6.0)
всё работает.
Re[4]: Вывод текста в произвольной ориентации
От: Jenyay http://jenyay.net
Дата: 16.06.02 11:43
Оценка:
Здравствуйте eva, Вы писали:

eva>Сегодня (16.06.2002) проверил (Windows 2000, VS 6.0)

eva>всё работает.

А. Кажется, это я просто невнимательно код прочитал. Я немного не так делал. Так что все нормально.
Софт, исходники и фото
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.