java如何在窗口上写文字_VC 直接在界面上添加文字
渐变字:
// 获得窗口的客户区设备上下文句柄
CClientDC dc(this);
// 更改当前字体
LOGFONT lf;
dc.GetCurrentFont()->GetLogFont(lf);
CFont font, *pOldFont;
lf.lfCharSet=134;
lf.lfHeight=-150;
lf.lfWidth=0;
strcpy(lf.lfFaceName, "隶书"); //直接添加汉字,选择字体
font.CreateFontIndirect(lf);
pOldFont=dc.SelectObject(&font);
dc.SetBkMode(TRANSPARENT);
// 更改当前画笔为空
CPen pen(PS_NULL, 1, RGB(255, 0, 0)), *pOldPen;
pOldPen=dc.SelectObject(pen);
// 更改当前刷子
CBrush br, *pOldBrush;
pOldBrush=dc.SelectObject(br);
// 开始一个路径
dc.BeginPath();
dc.TextOut(10, 10, "渐变字"); //前两个参数是位置坐标,这里可以添加多个TextOut()相当于画刷的轨迹。
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(255, i, 0));
dc.SelectObject(br);
dc.Ellipse(-iRadius, -iRadius/3, iRadius, iRadius/3);
}
// 恢复设备上下文的原有设置
dc.SelectObject(pOldFont);
dc.SelectObject(pOldPen);
dc.SelectObject(pOldBrush);
空心字:
// 获得窗口的客户区设备上下文句柄
CClientDC dc(this);
// 更改当前字体
LOGFONT lf;
dc.GetCurrentFont()->GetLogFont(lf);
CFont font;
CFont *pOldFont; // 保存设备上下文最初使用的字体对象
lf.lfCharSet=134;
lf.lfHeight=-150;
lf.lfWidth=0;
strcpy(lf.lfFaceName, "隶书");
font.CreateFontIndirect(lf);
pOldFont=dc.SelectObject(&font);
dc.SetBkMode(TRANSPARENT);
// 更改当前画笔
CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
CPen *pOldPen;
pOldPen=dc.SelectObject(pen);
// 开始一个路径
dc.BeginPath();
dc.TextOut(10, 130, "空心字");
dc.EndPath();
// 绘制路径
dc.StrokePath();
// 恢复设备上下文的原有设置
dc.SelectObject(pOldFont);
dc.SelectObject(pOldPen);
立体字:在实现3D文字时一般不使用缺省的字体设置,而是通过对字体的设置而使产生的3D文字在视觉上更美观
// 获得窗口的客户区设备上下文句柄
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));
dc.TextOut(10,10,"立体字");
dc.SetTextColor(::GetSysColor(COLOR_3DHILIGHT));
dc.TextOut(13,7,"立体字");
//恢复设备上下文的原有设置
dc.SelectObject(pOldFont);
旋转字:通过设置字体与X轴的倾斜角度(十分之一度为一个单位)
// 获得窗口的客户区设备上下文句柄
CClientDC dc(this);
//定义字体属性
LOGFONT lf;
lf.lfHeight = 50;
lf.lfWidth = 0;
lf.lfEscapement = 300; //倾斜30度,十分之一度为单位
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(RGB(255,0,0));
dc.TextOut(10,300,"旋转的字体");
//恢复设备上下文的原有设置
dc.SelectObject(pOldFont);
不同的编译器可能不一样,程序也不同:
CDC *pDC = GetDC();
// 更改当前字体
LOGFONT lf;
pDC->GetCurrentFont()->GetLogFont(&lf);
CFont font, *pOldFont;
lf.lfCharSet=134;
lf.lfHeight=-150;
lf.lfWidth=0;
wcscpy(lf.lfFaceName,_T("方正舒体"));
font.CreateFontIndirectW(&lf);
pOldFont=pDC->SelectObject(&font);
pDC->SetBkMode(TRANSPARENT);
// 更改当前画笔为空
CPen pen(PS_NULL,1,RGB(255,0,0)),*pOldPen;
pOldPen = pDC->SelectObject(&pen);
// 更改当前刷子
CBrush br,*pOldBrush;
pOldBrush=pDC->SelectObject(&br);
// 开始一个路径
pDC->BeginPath();
pDC->TextOut(10,10,_T("呃呃呃"));
pDC->EndPath();
// 绘制渐变效果
pDC->SelectClipPath(RGN_COPY);
for(int i=255; i>0; i--) {
int iRadius=(600*i)/255;
pDC->SelectObject(pOldBrush);
br.DeleteObject();
br.CreateSolidBrush(RGB(255,i,0));
pDC->SelectObject(br);
pDC->Ellipse(-iRadius,-iRadius/3,iRadius,iRadius/3);
}
// 恢复设备上下文的原有设置
pDC->SelectObject(pOldFont);
pDC->SelectObject(pOldPen);
pDC->SelectObject(pOldBrush);
以上是vs2008的程序。
java如何在窗口上写文字_VC 直接在界面上添加文字相关推荐
- java在图片下方写文字_Java画图给图片底部添加文字标题
Java画图 给图片底部添加文字标题 需求给图片底部添加文字编号 import java.awt.Color; import java.awt.Font; import java.awt.Graphi ...
- 视频添加文字用什么软件,视频添加文字怎么弄
随着plog.vlog等视频形式的兴起,视频添加文字变得越来越流行.与其选择插入音频解说,还不如加文字来得生动有趣.那么,视频添加文字用什么软件?视频添加文字怎么弄?接下来,本文会教大家使用一款简单好 ...
- qt ui界面无法移动控件_使用qt 键盘上的方向键只能控制ui界面上的按钮选择,不能实现我设定的功能...
已结贴√ 问题点数:20 回复次数:2 使用qt 键盘上的方向键只能控制ui界面上的按钮选择,不能实现我设定的功能 我做的是一个贪吃蛇游戏,现在我想实现的功能是:按下键盘上的上下左右箭头的方向按键时, ...
- 网页怎么在图片上添加文字_抖音一天可见怎么添加文字-抖音一天可见添加文字文案方法介绍...
抖音一天可见怎么添加文字?在抖音短视频app中,支持用户将自己的日常生活以日常一天可见的形式发布,那我们发布的一天可见视频,怎么添加文字文案呢,抖音一天可见怎么添加文字,下面就和小编一起来看看吧! 1 ...
- java编写的山寨qq_JAVA写的山寨版QQ(登录界面和好友列表)
登录界面:QqClientLogin.java /** * Date:2011/07/15 * 功能:QQ登入界面 */ package com.qq.client.view; import java ...
- 计算机桌面怎么能添加文字,如何实现在电脑桌面上添加文字提醒
在桌面上添加文字是有需求的,可以是勉励的话,也可以是日程.或是在公用的办公电脑上我们需要在桌面上添加一些文字,让大家注意使用电脑的规范,或者提醒他们不要将重要资料放在桌面上,那么如何实现在电脑桌面上添 ...
- 苹果手机怎么在照片上添加文字_怎么给手机照片添加文字?没想到方法这么容易,1分钟就能学会...
现如今智能手机拍照能力越来越强大,甚至旗舰手机的拍照效果不输于专业相机了,而且因为手机的便携性,大家更喜欢用手机拍照. 再加上现在社交应用众多,很多朋友拍完照片后,都会简单添加些文字图案元素,再发表到 ...
- 苹果手机怎么在照片上添加文字_要给照片快速添加文字、图框、印章,用这款手机软件比较方便...
现在手机的拍照功能越来越先进,人们走到哪儿,都会随拍几张照片,那么,如何后期才能让照片更加的赏心悦目呢?主要从添加文字.漂亮的文字排版.添加相框.以及添加印章元素等几个方面去处理.比如像下面几张照片的 ...
- css里给文字加下划线代码,css添加文字下划线样式的方法
css添加文字下划线样式的方法 发布时间:2020-08-31 13:54:27 来源:亿速云 阅读:65 作者:小新 这篇文章将为大家详细讲解有关css添加文字下划线样式的方法,小编觉得挺实用的,因 ...
最新文章
- Leaflet中使用markerCluster实现点聚合效果
- 【数据竞赛】“达观杯”文本智能处理挑战赛5
- windows server 2012 FTP 服务器 / 访问网络共享盘
- boost::mpl模块实现unpack_args相关的测试程序
- 3.QT数据库综合案例,模糊查询等操作
- (译)元素浮动的那些事儿
- 自己初学时的随笔记录
- LeetCode 1839. 所有元音按顺序排布的最长子字符串(滑动窗口)
- OpenCV-连环画效果(海贼王yyds)
- 一个基于 SpringBoot+Redis+Vue 仿饿了么外卖系统(后台+移动端),可二次开发接私活!...
- SpringBoot+POI方式导出excel【加水印】
- 微信公众平台-小程序开发工具源码
- 我和王争学设计模式|抽象工厂
- 数据库连接池使用场景,工作原理和实现步骤
- 独享IP有什么特点?
- leetcode844,难度easy
- 计算机毕设(附源码)JAVA-SSM基于大数据的高校国有固定资产管理及绩效自动评价系统
- [泰隆银行笔试]it岗位
- 简约水墨风文化教育PPT模板
- 三基色RGB:444.422
热门文章
- Android Studio 数据库可视化工具(Database Inspector)报错
- 【libcurl7.80】windows nmake 静态构建
- linux线程同步 epoll,Linux网络编程--epoll 模型原理详解以及实例
- |Vijos|图论最短路|P1391 想越狱的小杉
- 部队业务管理信息化系统-基于大数据部队信息化管理系统设计方案
- 剪切的东西不见了怎么找回来?这样做试试!
- sma4win数据处理_[原创]Win10 SXE使用-申精
- DotNetBar 学习笔记
- 单片机项目中LED的重要性~
- python matplotlib函数_Python matplotlib 函数图像绘制