字体效果
来源:互联网 发布:手机淘宝好友如何查看 编辑:程序博客网 时间:2024/05/03 19:12
一、空心字
// 绘制空心字void CFontEffectsSampleView::OnMenuKongxinFont() {// 获得窗口的客户区设备上下文句柄CClientDC dc(this);// 更改当前字体LOGFONT lf;dc.GetCurrentFont()->GetLogFont(&lf);CFont font;CFont *pOldFont; // 保存设备上下文最初使用的字体对象lf.lfCharSet=134;lf.lfHeight=-80;lf.lfWidth=0;strcpy(lf.lfFaceName, "宋体");font.CreateFontIndirect(&lf);pOldFont=dc.SelectObject(&font);dc.SetBkMode(TRANSPARENT);// 更改当前画笔CPen pen(PS_SOLID, 2, RGB(255, 50, 0));CPen *pOldPen;pOldPen=dc.SelectObject(&pen);// 开始一个路径dc.BeginPath();dc.TextOut(10, 10, "这里是空心字效果示例");dc.EndPath();// 绘制路径dc.StrokePath();// 恢复设备上下文的原有设置dc.SelectObject(pOldFont);dc.SelectObject(pOldPen);}
二、渐变颜色的字体
// 颜色渐变字体void CFontEffectsSampleView::OnMenuitemJianbianFont() {// TODO: Add your command handler code here// 获得窗口的客户区设备上下文句柄CClientDC dc(this);// 更改当前字体LOGFONT lf; dc.GetCurrentFont()->GetLogFont(&lf); CFont font, *pOldFont; lf.lfCharSet=134; lf.lfHeight=-50; lf.lfWidth=0; strcpy(lf.lfFaceName, "宋体"); font.CreateFontIndirect(&lf); pOldFont=dc.SelectObject(&font); dc.SetBkMode(TRANSPARENT); // 更改当前画笔为空 CPen pen(PS_NULL, 1, RGB(0, 0, 255)), *pOldPen; pOldPen=dc.SelectObject(&pen); // 更改当前刷子 CBrush br, *pOldBrush; pOldBrush=dc.SelectObject(&br); // 开始一个路径 dc.BeginPath(); dc.TextOut(10, 10, "这里是渐变颜色字体示例"); dc.EndPath(); // 绘制渐变效果 dc.SelectClipPath(RGN_COPY); for (int i=255; i>0; i--) {int iRadius=(600*i)/255; dc.SelectObject(pOldBrush); br.DeleteObject(); br.CreateSolidBrush(RGB(i, i, i)); dc.SelectObject(&br); dc.Ellipse(-iRadius, -iRadius/3, iRadius, iRadius/3); } // 恢复设备上下文的原有设置 dc.SelectObject(pOldFont); dc.SelectObject(pOldPen); dc.SelectObject(pOldBrush); }
三、文字跟随鼠标
void CFontEffectsSampleView::OnMouseMove(UINT nFlags, CPoint point) { mousePoint.x = point.x; mousePoint.y = point.y;CView::OnMouseMove(nFlags, point); Invalidate(); // UpdateWindow();}void CFontEffectsSampleView::OnPaint() {CPaintDC dc(this); // device context for painting dc.TextOut(mousePoint.x+3, mousePoint.y+3, "欢迎");//dc.TextOut(m_iXExtend,m_iYExtend,"水平文字滚动测试");/*CRect rc(m_iXExtend, m_iYExtend, m_iXExtend+15, m_iYExtend+150); dc.DrawText("垂直文字滚动测试", &rc, DT_EDITCONTROL|DT_WORDBREAK|DT_CENTER); */ CView::OnPaint();}
四、旋转字体
// 实现旋转字体void CFontEffectsSampleView::OnMenuitemRotateFont() {// TODO: Add your command handler code here CClientDC dc(this);// 获得窗口的客户区设备上下文句柄 //定义字体属性LOGFONT lf;lf.lfHeight = 50; lf.lfWidth = 0; lf.lfEscapement = 400; //倾斜40度,十分之一度为单位lf.lfOrientation = 0;lf.lfItalic = FALSE; lf.lfUnderline = FALSE;lf.lfStrikeOut = FALSE;lf.lfCharSet = GB2312_CHARSET; strcpy(lf.lfFaceName,"楷书");//创建字体CFont font;font.CreateFontIndirect(&lf);//更改当前字体CFont *pOldFont = dc.SelectObject(&font);//绘制字体dc.SetBkMode(TRANSPARENT);dc.SetTextColor(RGB(0,255,0));dc.TextOut(10,300,"这里是旋转字体示例");//恢复设备上下文的原有设置dc.SelectObject(pOldFont);}
五、文字水平滚动
void CFontEffectsSampleView::OnTimer(UINT nIDEvent) {CRect rect; GetClientRect(rect);//int iWidth = rect.Width(); int iHeight = rect.Height();Invalidate(); UpdateWindow();m_iYExtend+=2; if (m_iYExtend > iHeight) {m_iYExtend = 0;}CView::OnTimer(nIDEvent);}int CFontEffectsSampleView::OnCreate(LPCREATESTRUCT lpCreateStruct) {if (CView::OnCreate(lpCreateStruct) == -1)return -1; SetTimer(1, 100, NULL); return 0;}void CFontEffectsSampleView::OnPaint() {CPaintDC dc(this); // device context for painting dc.TextOut(mousePoint.x+3, mousePoint.y+3, "欢迎"); dc.TextOut(m_iXExtend,m_iYExtend,"水平文字滚动测试"); CRect rc(m_iXExtend, m_iYExtend, m_iXExtend+15, m_iYExtend+150); dc.DrawText("垂直文字滚动测试", &rc, DT_EDITCONTROL|DT_WORDBREAK|DT_CENTER); CView::OnPaint();}
六、3D立体文字
创建使用的对象,并使用SetTextColor()函数分别进行高亮状态显示和阴影状态显示//3D字体效果void CFontEffectsSampleView::OnMenuitem3dFont() {// TODO: Add your command handler code here// 获得窗口的客户区设备上下文句柄CClientDC dc(this);//定义字体属性LOGFONT lf;lf.lfHeight = 50;lf.lfWidth = 0;lf.lfEscapement = 0;lf.lfOrientation = 0;lf.lfWeight = FW_HEAVY;lf.lfItalic = FALSE;lf.lfUnderline = FALSE;lf.lfStrikeOut = FALSE; lf.lfCharSet = GB2312_CHARSET;strcpy(lf.lfFaceName,"隶书");//创建字体CFont font;font.CreateFontIndirect(&lf);//更改当前字体CFont *pOldFont = dc.SelectObject(&font);//绘制字体dc.SetBkMode(TRANSPARENT);dc.SetTextColor(::GetSysColor(COLOR_3DDKSHADOW));CString text = "这里是3D字体示例";CRect rc;GetClientRect(&rc);// 开始一个路径dc.BeginPath();dc.DrawText( text, rc, DT_SINGLELINE|DT_LEFT|DT_VCENTER|DT_CENTER);dc.SetTextColor(::GetSysColor( COLOR_3DHILIGHT) );dc.DrawText( text, rc+CPoint(2, 2), DT_SINGLELINE|DT_LEFT|DT_VCENTER|DT_CENTER);dc.EndPath();// 绘制路径dc.StrokePath();dc.SelectObject(pOldFont);}
阅读全文
0 0
- 字体效果
- 字体效果
- 特殊字体效果p1
- Photoshop字体效果汇总
- jsp 字体效果
- 数字字体 ---- LCD效果
- 字体加阴影效果
- 字体设置及效果
- 字体颜色变化效果
- 设置字体不同效果
- Android发光字体效果
- TextView字体滚动效果
- CSS3_文本效果&字体
- TextView字体跑马效果
- CSS3文本效果 、字体
- 字体放大效果
- CSS中的字体效果
- 字体霓虹灯效果
- 【在职场上做自己,原来没这么难!…
- JAVA设计模式(十二)----代理模式
- 【我想要爱你如初!四个如何长久相…
- MpAndroidChart 学习篇-柱状图和饼状图学习笔记
- 【「我爱你,但不能爱得太靠近」致…
- 字体效果
- 【另一半外遇,你要原谅他吗?】外…
- 算法复杂度分析
- 【男人不坏,女人不爱。小心!这三…
- tcl-debug调试OTcl脚本
- 【社会新鲜人:让人生每个经历都成…
- 【年轻人真的不上进吗?】大学教育…
- 【不爱读书,不代表不需要努力】「…
- 【手足,是孩子们最好的友伴】五月…