用GetGlyphOutline取字体点阵
来源:互联网 发布:软件测试用户手册 编辑:程序博客网 时间:2024/05/16 19:15
void CtestdlgDlg::OnBnClickedButton6()
{
CDC * pDC;
CString cStr;
CHAR c;
GLYPHMETRICS GpMtic;
BYTE * pBuffer;
DWORD dwBufSize;
MAT2 mat;
CFont font;
CFont * pOldFont;
LOGFONT lf;
DWORD dwRetVal;
int x, y;
BOOL bBit;
c = 'X';
cStr = c;
pDC = this->GetWindowDC();
memset(&lf,0,sizeof(LOGFONT));
lf.lfHeight=180;
lstrcpy(lf.lfFaceName,_T("Times New Roman"));
font.CreateFontIndirect(&lf);
pOldFont = pDC->SelectObject(&font);
pDC->TextOut(0, 0, cStr);
NSys::IdleSleep(200);
memset(&GpMtic, 0, sizeof(GpMtic));
memset(&mat, 0, sizeof(mat));
mat.eM11.value = 1;
mat.eM22.value = 1;
pBuffer = NULL;
dwBufSize = 0;
dwRetVal = pDC->GetGlyphOutline(c, GGO_BITMAP, &GpMtic, dwBufSize, pBuffer, &mat);
if(dwRetVal == -1)
{
NMsg::MsgErr();
goto Done;
}
dwBufSize = dwRetVal;
pBuffer = new BYTE[dwBufSize];
memset(pBuffer, 0, dwBufSize);
dwRetVal = pDC->GetGlyphOutline(c, GGO_BITMAP, &GpMtic, dwBufSize, pBuffer, &mat);
if(dwRetVal == -1)
{
delete [] pBuffer;
goto Done;
}
int nWidth, nHeight;
BYTE *pData;
DWORD dwOneLine;
int dx, dy;
nWidth = GpMtic.gmBlackBoxX;
nHeight = GpMtic.gmBlackBoxY;
TEXTMETRIC TxtMtic;
pDC->GetTextMetrics(&TxtMtic);
dx = GpMtic.gmptGlyphOrigin.x;
dy = TxtMtic.tmAscent - GpMtic.gmptGlyphOrigin.y;
dwOneLine = (nWidth/8 + 3) / 4 * 4;
for(y=0; y<nHeight; y++)
{
for(x=0; x<nWidth; x++)
{
pData = pBuffer + dwOneLine*y + x/8;
bBit = *pData & (1 << 7-(x%8));
if(bBit)
pDC->SetPixel(x+dx, y+dy, RGB(255, 0, 0));
// else
// pDC->SetPixel(x+dx, y+dy, RGB(0, 255, 0));
}
}
delete [] pBuffer;
Done:
pDC->SelectObject(pOldFont);
this->ReleaseDC(pDC);
}
- 用GetGlyphOutline取字体点阵
- ttf字体取点阵字模
- 编程用的点阵字体
- 用GetGlyphOutline搞字模
- 用GetGlyphOutline搞字模
- 如何取得字符点阵数据(GetGlyphOutline函数简单应用)
- 如何取得字符点阵数据(GetGlyphOutline函数简单应用)
- 如何取得字符点阵数据 GetGlyphOutline函数简单应用
- GetGlyphOutline
- 获取字体点阵
- [C++] 获取字体点阵
- [C++] 获取字体点阵
- [C++] 获取字体点阵
- [C++] 获取字体点阵
- 点阵字体的创建
- 输入点阵字体
- OpenGL点阵字体绘制
- 用GetGlyphOutline搞字模
- 【搜集】问题:什么是 PEAR?PEAR 是什么意思?
- 备份msn自定义图示
- 开博宣言
- 在ASP.NET中应用Excel:(7)表格尺寸的计算
- 群工作
- 用GetGlyphOutline取字体点阵
- 走出软件作坊:三五个人十来条枪 如何成为开发正规军(二)
- 什么是MVC
- 收藏:jsp中java中文编码问题的个人经验
- 卫星地图上发现的带王冠的人
- 在ASP.NET中应用Excel:(8)为HTML表格增加编辑功能
- 如何恢复 Linux 上删除的文件:ext2
- 买了一个国产的数码相机
- SAP中库存周转率算法