工控编程吧
标题:
实现文字旋转变色效果--上位机VC
[打印本页]
作者:
qq263946146
时间:
2016-11-24 14:34
标题:
实现文字旋转变色效果--上位机VC
(, 下载次数: 0)
上传
点击文件名下载附件
实现文字旋转变色效果--上位机VC
功能展示
程序上文字都是规规矩矩的水平或垂直显示,有时想文字任意角度的显示,就得额外用代码实现,当前例程就实现文字任意角度任意颜色的显示功能,效果如图,点击<显示旋转文字>按钮就可每15度显示文字,例程将按钮的点击函数调用于OnPaint()函数里,程序一运行就可显示文字
要点提示
在窗口文字的显示可以用窗口设备上下文类CClientDC的函数TextOut()实现,文字输出时使用的是默认的LOGFONT结构体,要更改文字 的角度我们只需自行准备一LOGFONT结构体,设置其成员变量lfEscapement为我们想要的角度,利用Cfont进行创建,再用CClientDC类的函数SelectObject选进就可;
实现功能
1.新建基于对话框的应用程序
2.拖拽一按钮控件,双击控件,关联按钮的点击函数,在函数内实现文字 旋转
void CGkbc8Dlg::OnButton1()
{
CClientDC dc(this);
dc.SetBkMode (TRANSPARENT);//背景模式 为透明
byte r=10;byte g=10;byte b=10;
//<>
LOGFONT stFont; //字体定义结构
memset(&stFont, 0, sizeof(LOGFONT));
stFont.lfHeight=MulDiv(14, -dc.GetDeviceCaps(LOGPIXELSY), 72);
stFont.lfWeight=FW_NORMAL;
stFont.lfClipPrecision=CLIP_LH_ANGLES;
strcpy (stFont.lfFaceName, "Arial");
//<>
CFont font;
CRect rc;
GetClientRect(&rc);//要显示的客户区域
CString sText("oooo...I am only a test!");//要显示的文字
for (int nAngle=0; nAngle<3600; nAngle+=150)//每隔15度输出字符串
{
stFont.lfEscapement=nAngle;//设定新的旋转角度
font.CreateFontIndirect(&stFont);//创建字体并选进设备场景
CFont* pOldFont=dc.SelectObject(&font);
r+=20;g+=3;b+=1;
dc.SetTextColor (RGB (r,g,b));//文字颜色为红
dc.TextOut(rc.left + rc.Width()/2,rc.top + rc.Height()/2,sText);//输出字体
dc.SelectObject(pOldFont);//原来字体
font.DeleteObject();
}
}
复制代码
3.点击一次按钮,显示一次文字,可在OnPaint()函数中调用按钮函数,实现自动绘制旋转文字
void CGkbc8Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
OnButton1() ;
}
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/58969d2620e4ed761862836282852a9f/0/0/w_19run2o4j9.swf-albumId=6813363609-tvId=6813363609-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 654)
上传
点击文件名下载附件
[weixinlianxi]1[/weixinlianxi]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4