日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言扔球第一次弹10米,c语言滚动字幕代码

發布時間:2023/12/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言扔球第一次弹10米,c语言滚动字幕代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

滿意答案

lgnosa

推薦于 2016.10.01

采納率:59%????等級:11

已幫助:4654人

在軟件啟動時,為了加深軟件在用戶頭腦中的印象,可以在軟件封面上由下而上循環滾動顯示一些包含軟件名稱、功能、版本、用戶名、研制單位等文字信息,在用戶按下任意鍵或點擊鼠標鍵后,立即結束演示進入程序主界面。本文通過向工程中添加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);

}

30分享舉報

總結

以上是生活随笔為你收集整理的c语言扔球第一次弹10米,c语言滚动字幕代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。