|
分類:[C/C++]
お世話になります。
GetGlyphOutline関数を使用して、
アウトライン情報を取得し、
取得したパスをつないで文字を描画したいです。
GetGlyphOutlineの使用法は分かったのですが、
取得したアウトライン情報lpBufferを
TTPOLYGONHEADER構造体、
TTPOLYCURVE構造体に分割する方法を教えてください!
char *str = _T( "あ" );
UINT u1, u2;
UINT nChar;
UINT nFormat;
LPGLYPHMETRICS lpgm;
DWORD cbBuffer;
LPVOID lpBuffer;
MAT2 lpmat2;
u1 = *( BYTE* )str;
u2 = *( BYTE* )( str + 1 );
nChar = u1 << 8 | u2;
memset(&lpmat2, 0x00, sizeof(MAT2));
lpmat2.eM11.value = 1;
lpmat2.eM22.value = 1;
// あらかじめ取得しておいたフォントをセット
SelectObject(&font);
cbBuffer = pDC->GetGlyphOutline( nChar, GGO_NATIVE, lpgm, 0, NULL, &lpmat2 );
lpBuffer = (LPBYTE)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cbBuffer);
cbBuffer = pDC->GetGlyphOutline( nChar, GGO_NATIVE, lpgm, cbBuffer, lpBuffer, &lpmat2 );
|