思路:
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;
voidcshowfontview::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);
}
然後呢就把字貼出來;怎樣貼呢就根據需求;
voidcshowfontview::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 中用於處理陣列資料的函式位於...