雙緩衝顯示字幕(卡拉ok字幕)

2022-08-29 18:33:08 字數 2074 閱讀 1349

思路:

1.設定定時器settime,在ontime()裡面確定顯示矩形的大小,讓後用drawtext把字鐵道矩形上面;

2.int ntexthei = dc.gettextextent( m_strtext ).cy; // length of horizontal label文字的高度

int ntextwei = dc.gettextextent( m_strtext ).cx; // length of horizontal label文字的寬度

獲取文字高度和寬度。

3.設定矩形的大小

矩形的寬度可以每次都加1;

void

cshowfontview::ontimer(uint nidevent)

rectretangle.setrect( ntextwei +20 - m_nwithrect , 30 , ntextwei +20 , 30+ntexthei );

rectcolor.setrect(

300 , 300 , 300+m_nwithrect , 300+ntexthei );

sleep(

30);

drawtext( m_strtext );

cview::ontimer(nidevent);

}

然後呢就把字貼出來;怎樣貼呢就根據需求;

void

cshowfontview::drawtext( cstring strtext )

static

int ncout = 0

; cclientdc dc(

this

); crect rtclient;

getclientrect( &rtclient );

cbitmap membitmap;

cdc memdc;

//首先定義乙個顯示裝置物件

memdc.createcompatibledc( &dc );

membitmap.createcompatiblebitmap( &dc , rtclient.width() , rtclient.height() );

memdc.selectobject( &membitmap );

memdc.fillsolidrect(

0 ,0 , rtclient.width() , rtclient.height() , rgb( 199 , 237 , 208

)); memdc.settextcolor( rgb(

255 , 0 , 0

)); memdc.drawtext( strtext , &rectretangle , dt_left );//字幕向左滾動;

memdc.settextcolor( rgb(

0 , 0 , 0 ) );//

先把這段歌詞全部顯示

memdc.drawtext( strtext , &rectshow , dt_left );

memdc.settextcolor( rgb(

0, 0 , 255 ));//

在把要變色的再顯示一遍;

memdc.drawtext( strtext , &rectcolor , dt_left );

dc.bitblt(

0 , 0 , rtclient.width() , rtclient.height() , &memdc , 0, 0

, srccopy );

membitmap.deleteobject();

memdc.deletedc();

ncout ++;

}int

cshowfontview::oncreate(lpcreatestruct lpcreatestruct)

bool cshowfontview::onerasebkgnd(cdc*pdc)

void

cshowfontview::readgeci()

dlg.close();

}}cstring cshowfontview::getgeci(

intnindex )

巧做卡拉OK遮罩字幕

劉曙光 王鷹 電腦愛好者 2014 12 19 09 09 技巧 不少自己製作mv,但我發現網上許多作品聲音和歌詞不同步,更沒有字幕滾動效果 我們平常所說的遮罩效果 這不能不說是一種缺憾。所以我們還要精心打造歌曲字幕,才能把作品變得真正完美和ok!lrc歌詞編輯器做字幕 圖1然後,我們可以在繪聲繪影...

用小灰熊做卡拉OK字幕

1 製作歌詞指令碼檔案 操作結束後,你將看到在原來的歌詞文字中增加了許多時間控制 2 檢查歌詞指令碼語法 當歌詞指令碼製作完成並且檢查無誤後,就可以使用卡拉ok預覽功能來預覽卡拉ok字幕和歌曲同步的效果了。選擇 操作 選單中的 卡拉ok預覽 命令,kbuilder tools就會開啟乙個預覽視窗並開...

LabVIEW模擬卡拉OK唱機的燈光顯示效果

labview 是實驗室虛擬儀器整合環境的簡稱,是美國國家儀器公司 ni 的創新軟體,其程式結構包括迴圈 分支等特殊結構的控制程式流程,還有執行語法和語義的順序結構,思維導圖如下。陣列在程式框圖上體現為乙個一維或多維矩陣,其中每乙個元素都有其唯一的索引值。labview 中用於處理陣列資料的函式位於...