绘制镜像字体
来源:互联网 发布:苹果蜂窝移动数据清零 编辑:程序博客网 时间:2024/06/11 18:05
//绘制镜像字体void Draw_Mirror_Text(CDC *pDst_DC,//目标设备句柄 CPoint dst_Point,//目标位置 LPCTSTR drawText,//目标字符串 COLORREF textColor, //字体颜色 bool Mirror_X,//X轴镜像 bool Mirror_Y //Y轴镜像 ){ if(pDst_DC && pDst_DC->m_hDC) //设备句柄有效 { //创建兼容内存设备 CDC memDC; memDC.CreateCompatibleDC(pDst_DC); int saveDC = memDC.SaveDC(); //保存设备状态 //获取字符串大小 CSize text_size = memDC.GetTextExtent(drawText); CRect rect(0,0,text_size.cx,text_size.cy); //创建兼容位图 CBitmap bitmap; bitmap.CreateCompatibleBitmap(pDst_DC,rect.Width(),rect.Height()); CBitmap *pBitmap = memDC.SelectObject(&bitmap); //选入位图 //填充白色背景色 CBrush brush(RGB(255,255,255)); memDC.FillRect(rect,&brush); //正常模式绘制字体 int saveMode = memDC.SetMapMode(MM_TEXT); int savebkMode = memDC.SetBkMode(TRANSPARENT);//不更改背景色 COLORREF saveTextColor = memDC.SetTextColor(textColor);//设置字体颜色 memDC.TextOut(0,0,drawText);//绘制字体 memDC.SetTextColor(saveTextColor);//恢复字体颜色 memDC.SetBkMode(savebkMode);//恢复映射模式 //主要是用SetViewportExt 和 SetViewportOrg 做坐标翻转 memDC.SetMapMode(MM_ISOTROPIC); CSize saveWindowExt = memDC.SetWindowExt(1,1); int vp_cx = 1,vp_cy = 1; if(Mirror_X) vp_cx = -1; if(Mirror_Y) vp_cy = -1; CSize saveViewport = memDC.SetViewportExt(vp_cx,vp_cy); int vporg_x = 0,vporg_y = 0; if(Mirror_X)vporg_x = rect.Width()-1; if(Mirror_Y)vporg_y = rect.Height()-1; CPoint saveViewportOrg = memDC.SetViewportOrg(vporg_x,vporg_y); //贴图到目标设备的目标位置 pDst_DC->BitBlt(dst_Point.x,dst_Point.y,rect.Width(),rect.Height(),&memDC,0,0,SRCAND); //恢复内存设备信息 memDC.SetViewportOrg(saveViewportOrg); memDC.SetViewportExt(saveViewport); memDC.SetWindowExt(saveWindowExt); memDC.SetMapMode(saveMode); //释放对象 销毁内存设备 memDC.SelectObject(pBitmap); bitmap.DeleteObject(); memDC.RestoreDC(saveDC); memDC.DeleteDC(); }}
- 绘制镜像字体
- ActionScript3 绘制图片镜像
- 绘制3d字体
- 绘制位图字体
- 使用FreeType绘制字体
- 使用Opengl绘制字体
- 使用Opengl绘制字体
- VC++GDI+绘制字体
- OpenGL点阵字体绘制
- D3D绘制字体
- DirectX11 绘制字体
- 绘制系统内核字体
- android图像绘制(一)——镜像问题
- Managed Directx 使用 Sprite 的精灵绘制实现镜像
- ubuntu 字体设置像Windows 字体
- [FreeType2] 字体绘制入门 (1)
- D3D中的字体绘制示例
- C#GDI绘制自定义字体
- Linq 使用的想法!
- 搜索引擎工程师的7种武器
- 数据库设计技巧
- 上海:我的未来在哪里?(zt)
- VC++从入门到精通视频教程----孙鑫
- 绘制镜像字体
- 2008-5-23
- 11111
- 11111
- JavaScript获取元素在浏览器画布中的绝对位置
- 算法是百度工程师的利器
- 毕业设计
- 使用继承
- Myeclise6.0版中配置运行JSP