GetGlyphOutline и GetDC в COM-объекте
От: Fert Россия  
Дата: 01.06.07 06:54
Оценка:
В COM-объекте без ОКОШЕК делаю следующее:
  LOGFONT lf;   // выбраный фонт
  MAT2 mat;     // матрица преобразования возможно не единичная
  UINT uChar;   // выбраный символ
  GLYPHMETRICS gm;
  HDC hDC = /*CreateCompatibleDC(*/::GetDC(NULL)/*)*/
  HFONT hFont = CreateFontIndirectA(&lf);
  HFONT hOldFont = (HFONT)SelectObject(hDC, hFont);
  DWORD cbBuffer = GetGlyphOutline(hDC, uChar, GGO_NATIVE, &gm, 0, NULL, &mat);

GetGlyphOutline — возвращает ошибку?

Этот же код написанный в простеньком приложении работает корретно. Я получаю контура символов для любых фонтов?
Учить Кнут'ом и Вирт'ом.
Re: GetGlyphOutline и GetDC в COM-объекте
От: Fert Россия  
Дата: 08.06.07 13:42
Оценка:
Здравствуйте, Fert, Вы писали:

F>В COM-объекте без ОКОШЕК делаю следующее:

F>
F>  LOGFONT lf;   // выбраный фонт
F>  MAT2 mat;     // матрица преобразования возможно не единичная
F>  UINT uChar;   // выбраный символ
F>  GLYPHMETRICS gm;
F>  HDC hDC = /*CreateCompatibleDC(*/::GetDC(NULL)/*)*/
F>  HFONT hFont = CreateFontIndirectA(&lf);
F>  HFONT hOldFont = (HFONT)SelectObject(hDC, hFont);
F>  DWORD cbBuffer = GetGlyphOutline(hDC, uChar, GGO_NATIVE, &gm, 0, NULL, &mat);
F>

F>GetGlyphOutline — возвращает ошибку?

F>Этот же код написанный в простеньком приложении работает корретно. Я получаю контура символов для любых фонтов?


Изменю вопрос!

Чем отличается контест(GDI) приложения от СОМ-объекта

В СОМ-объекте создал скрытое ОКОШКО от него взял HDC, а результат тотже(т.е. нет результата )
Учить Кнут'ом и Вирт'ом.
Re[2]: GetGlyphOutline и GetDC в COM-объекте
От: Andrew S Россия http://alchemy-lab.com
Дата: 09.06.07 21:19
Оценка:
F>>GetGlyphOutline — возвращает ошибку?

F>>Этот же код написанный в простеньком приложении работает корретно. Я получаю контура символов для любых фонтов?


F>Изменю вопрос!


F>Чем отличается контест(GDI) приложения от СОМ-объекта


F>В СОМ-объекте создал скрытое ОКОШКО от него взял HDC, а результат тотже(т.е. нет результата )


Скорее всего, дело в шрифте. Посмотрите, что у вас в logfont в случае обычного приложения, и приложения без окон. Получение данных шрифта работает только для true type.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.