當前位置:首頁 » 編程語言 » 彩色動態字母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,其它同理。