当前位置:首页 » 编程语言 » 彩色动态字母c语言代码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

彩色动态字母c语言代码

发布时间: 2022-05-23 05:40:29

c语言滚动字幕代码

在软件启动时,为了加深软件在用户头脑中的印象,可以在软件封面上由下而上循环滚动显示一些包含软件名称、功能、版本、用户名、研制单位等文字信息,在用户按下任意键或点击鼠标键后,立即结束演示进入程序主界面。本文通过向工程中添加Splash screen组件,然后在CsplashWnd类中添加DrawText成员方便地实现了具有滚动文字效果的软件封面,其中文字的位置、对齐方式、字体、字号、颜色都由程序来控制。

---- 详细设计步骤如下:

---- 1.创建一个名为test的SDI或MDI工程;

---- 2.向工程中添加Splash screen组件,即添加一个CWnd类的派生类CsplashWnd;

---- 3.编辑或导入软件封面的位图资源,标识号为IDB_SPLASH;

---- 4.向CsplashWnd类中添加一个公有成员函数DrawText,此函数用来在软件封面中显示文字,的实现代码如下:(其中参数含义分别为:内存dc,文字位置,对齐方式,字体,字号,颜色,正文文字)

void CSplashWnd::DrawText(CDC *pDC,
int x, int y, int nAlign,
CString sFontName, int nFONTSIZE0,
COLORREF crTextColor, CString sText)
{
LOGFONT lf;//字体
lf.lfStrikeOut=0;//删除线
lf.lfCharSet = DEFAULT_CHARSET ;//字符集
lf.lfEscapement =0;//角度
lf.lfItalic = 0 ;//倾斜
lf.lfUnderline = 0 ;//下划线
lf.lfHeight = nFONTSIZE0 ;//字号

strcpy(lf.lfFaceName,sFaceName.
GetBuffer(sFontName.GetLength()));
CFont font ;
font.CreateFontIndirect(&lf);
CFont *pOldFont = (CFont *)
pDC->SelectObject(&font);
UINT oldAlign,uAlign ;
switch(nAlign)
{
case 0: uAlign = TA_LEFT | TA_TOP ; break;
case 1: uAlign = TA_CENTER | TA_TOP; break;
case 2: uAlign = TA_RIGHT | TA_TOP ; break;
default: uAlign = TA_LEFT | TA_TOP ; break;
}
oldAlign = pDC->SetTextAlign(uAlign);
int oldMode = pDC->SetBkMode(TRANSPARENT);
int oldColor = pDC->SetTextColor(crTextColor) ;
pDC->TextOut(x,y,sText);

pDC->SetTextColor(oldColor) ;
pDC->SetTextAlign(oldAlign);
pDC->SetBkMode(oldMode);
pDC->SelectObject(pOldFont);
font.DeleteObject();
}

---- 5. 给CsplashWnd类中添加如下公有成员变量,并初始化变量;

class CSplashWnd : public CWnd
{
......
public:
CDC m_dcText,m_dcImage;//显示dc的兼容内存dc
CBitmap* m_pBitmap;//位图对象
CBitmap* m_pOldBitmapText,
*m_pOldBitmap;//跟踪内存dc中的原位图
CRgn m_rgn;//用于生成矩形区域
CRect m_TextRect ;//显示文字的矩形区域
int m_nCurPos ;//文字当前位置
......
}

CSplashWnd::CSplashWnd()
{......
m_nCurPos = 50 ;
......
}
---- 6.在SPLASH.CPP中加入以下预定义命令:

#define TITLECOLOR RGB(0,0,255)//默认标题颜色
#define CONTENTCOLOR RGB(0,255,255)//默认说明文字颜色
#define FONTSIZE0 15 //默认字号

---- 7. 在CsplashWnd类Create中拷贝矩形区域到m_TextRect ;

BOOL CSplashWnd::Create
(CWnd* pParentWnd /*= NULL*/)
{......
m_TextRect.CopyRect
(&CRect(50,100,500,300));
......
}

---- 8. 在CsplashWnd类的成员OnPaint中添加代码,响应显示窗口时发送的WM_PAINT消息。

void CSplashWnd::OnPaint()
{
CPaintDC dc(this);
BITMAP bm;
m_bitmap.GetBitmap(&bm);
static BOOL bFirst = TRUE;//
指示是否第一次绘制窗口
if(bFirst)
{
if (!m_dcImage.CreateCompatibleDC(&dc)) return;
m_pOldBitmap = m_dcImage.SelectObject(&m_bitmap);
if (!m_dcText.CreateCompatibleDC(&dc)) return;
m_pBitmap = new CBitmap ;
int nBitCount = m_dcText.GetDeviceCaps(BITSPIXEL);
m_pBitmap->CreateBitmap
(bm.bmWidth,bm.bmHeight,1,nBitCount,NULL);
m_pOldBitmapText = m_dcText.SelectObject(m_pBitmap);
m_rgn.CreateRectRgn(m_TextRect.left,m_TextRect.top,
m_TextRect.right,m_TextRect.bottom);
bFirst = FALSE;
}
m_dcText.SelectClipRgn(NULL);
m_dcText.BitBlt(0, 0, bm.bmWidth,
bm.bmHeight,&m_dcImage, 0, 0, SRCCOPY);
m_dcText.SelectClipRgn(&m_rgn);
int nBasex = m_TextRect.left ;
int nBasey = m_TextRect.bottom-m_nCurPos;
int nMidx = m_TextRect.left + m_TextRect.Width()/2 ;

DrawText(&m_dcText,nMidx,nBasey, 1,
"楷体_GB2312", FONTSIZE0+5,TITLECOLOR,"研制单位");
DrawText(&m_dcText,nMidx,nBasey+30, 1,
"楷体_GB2312", FONTSIZE0,CONTENTCOLOR,
"武警指挥学院模拟中心");
DrawText(&m_dcText,nMidx,nBasey+50, 1,
"楷体_GB2312", FONTSIZE0,TITLECOLOR,"邮政编码");
DrawText(&m_dcText,nMidx,nBasey+70, 1,
"楷体_GB2312", FONTSIZE0,CONTENTCOLOR,"300350");
dc.BitBlt(0, 0, bm.bmWidth,
bm.bmHeight,&m_dcText, 0,0, SRCCOPY);
}

Ⅱ c语言怎么输出有颜色的字,求大神,看别人代码,是输出黄的,求告诉其他的…

#include <stdio.h>
#include <conio.h> /* 使用getch()函数,这个函数用于无缓冲输入,不回显。即:按下一个键立即读入该字符(不需要按回车键),并且不自动把读入的字符显示在屏幕上 */

/* 打印指定宽度的颜色条 */
/* 参数1:颜色 */
/* 参数2:宽度 */
void prt_color_bar(unsigned color, unsigned width)
{
unsigned i;
/* 指定宽度个数的空格 */
for (i = 0; i < width; i++)
{
printf("\033[%u;%um \033[0m", color, color-10);
/* 同颜色,文字色的数值比背景色的代码少10 */
}
}

Ⅲ C语言,怎么使打出的代码是彩色的

1、可以调用dos控制台的命令system("color xx");改变文字颜色。设置默认的控制台文字和背景颜色。COLOR [attr]attr 指定控制台输出的颜色属性颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为文字。每个数字可以为以下任何值之一:0 = 黑色 8 = 灰色1 = 蓝色 9 = 淡蓝色2 = 绿色 A = 淡绿色3 = 浅绿色 B = 淡浅绿色4 = 红色 C = 淡红色5 = 紫色 D = 淡紫色6 = 黄色 E = 淡黄色7 = 白色 F = 亮白色如果没有给定任何参数,该命令会将颜色还原到 CMD.EXE 启动时的颜色

Ⅳ C语言动画程序代码

只有动画没有色彩的设置要不要?

Ⅳ C语言改变字体颜色的代码

1,用样式表(css),在组件里面加上style属性,例如:

<div style="background-color:blue;font-family:宋体;">

欢迎你

</div>

2,直接在字体两边加font标记,例如:

<font color=blue >欢迎你</font>

(5)彩色动态字母c语言代码扩展阅读

<input name="submit" type="submit" value="changeColor" onClick="changeColor()">

<span id="wenzi">wenzi</span>

<script>

function changeColor(){

document.all['wenzi'].style.color="#ff0000";

}

</script>

Ⅵ 滚动字幕c语言编程求一个16*16的LED点阵屏滚动字幕的C语言程序

这算是单片机上应用吧。
先要看LED点阵屏所需参数(驱动,速度,点阵显示汉字串口),这个看懂了也就会了。当然先要会C语言
要是不会,直接用那就找差不多的改。
http://blog.163.com/heaphone2010@126/blog/static/1684254352010112693739548/
这里有一个16*128的。

Ⅶ 如何用C语言制作一个可以在开始屏幕上滚动的字幕

实现滚动字幕:

一、单行滚动,写一个函数,每次调用让全局或静态字符数组向一个方向移位(比如左移,从最右边一个非0字符开始遍历,依次覆盖左边的一个字符,最左边的字符被第二个字符覆盖,最右边一个非0位变移出的那个字符)。记得保留结束符号0。

二、之后循环打印字符数组。每次使用system("cls");清空控制台显示。

三、多行滚动,同理,只不过把字符移动覆盖,改成字符串移动覆盖。(移动方向的后一行覆盖前一行,把移动方向第一行内容赋值给最后一行)。

//ps:由于肉眼观察,移动需要间隔,用Sleep函数,但该函数会让线程停止,如滚屏间隔期间,还希望其它部分正常运行,需要写线程。

下面是参考代码:

#include<stdio.h>

#include <windows.h>

void sScreen(char str[],int len,int f);//len:内容长度,不包含结束符号。f=1向左移动。f=0向右移动;

int main()

{

char str[]="I LOVE YOU";

while(1)

{

printf("%s ",str);

sScreen(str,10,0);

Sleep(1000);

system("cls");

}

return 0;

}

void sScreen(char str[],int len,int f)

{

int i;

char c;

if(f)

{

c=str[0];

for(i=0;i<len-1;i++)

str[i]=str[i+1];

str[len-1]=c;

}

if(!f)

{

c=str[len-1];

for(i=len-1;i>0;i--)

str[i]=str[i-1];

str[0]=c;

}

}

Ⅷ 用c语言编写一个字幕滚动程序

以下代码实现字符从右到左循环滚动.

C语言控制台程序

#include<stdio.h>
#include<string.h>
#include<windows.h>

intmain()
{
charstr[100]="HELLOWORLD!GOODBYE!";
inti,j;
for(i=0;i<strlen(str);i++)
{
system("cls");
for(j=i;j<strlen(str);j++)
{
printf("%c",str[j]);
}
Sleep(100);
printf(" ");
}
return0;
}

Ⅸ 急需led滚动字幕代码,用到8*8LED列阵

#include<reg51.h>

#defineucharunsignedchar

voiddelay(uchartime)

{uchari;

while(time--)

for(i=0;i<125;i++);

}

voidmain()

{

ucharA[8]={0x18,0x3c,0x66,0x66,0x7e,0x66,0x66,0x66};//A

ucharB[8]={0x7c,0x6e,0x66,0x7c,0x66,0x66,0x6e,0x7c};//B

ucharC[8]={0x1e,0x3e,0x60,0x60,0x60,0x70,0x3e,0x1e};//C

ucharsit[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

uchar*tt[3]={A,B,C};

uchari=0,j=0;

unsignedinta=1000;

for(j=0;j<3;j++)

{a=100;

while(a--)

for(i=0;i<8;i++)

{

P2=*(tt[j]+i);

P0=~sit[i];

delay(1);

P2=0;//clean-up

}

}

delay(100);

}

Ⅹ C语言单片机代码 数码管动态显示

这里的16个元素代表的是从十六进制数0~9、A、B、C、D、E、F的段码,根据什么来填这些数组元素?那就要看你设计程序时定义数组的作用才能确定.table[1]对应的元素为0x06,是十六进制数,转换成二进制数是00000110B,分别对应于数码管的Dp、g、f、e、d、c、b、a
脚,所以在共阴数码管上点亮b、c两段,显示的是数字1,其它同理。