最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MFC實現(xiàn)字幕滾動效果

 更新時間:2020年05月30日 17:25:07   作者:一槍盡騷丶魂  
這篇文章主要為大家詳細介紹了MFC實現(xiàn)滾動字幕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了MFC實現(xiàn)字幕滾動效果的具體代碼,供大家參考,具體內(nèi)容如下

1、創(chuàng)建對話框工程

這一步很簡單,可以參考我之前的博客。這里可以先放出我程序運行的效果圖。如果不是你所需要的可以直接關(guān)閉博客了。

2、添加控件

在界面上面主要用到的就是CStatic, Cedit,Cbutton這里給我我對話框的資源圖:

3、添加消息

需要添加定時消息,背景顏色消息,添加消息:

ON_WM_CTLCOLOR()
ON_WM_TIMER()
HBRUSH CDemoLEDDlg::OnCtlColor(CDC*pDC, CWnd* pWnd, UINT nCtlColor)
{
   HBRUSH hbr = CDialogEx::OnCtlColor(pDC,pWnd, nCtlColor);
   if(nCtlColor== CTLCOLOR_STATIC) 
   { 
     pDC->SetBkMode(TRANSPARENT); 
     pDC->SetTextColor(RGB(255,0, 0)); 
     return(HBRUSH)::GetStockObject(NULL_BRUSH); 
   }
   returnhbr;
}

4、字體初始化

在OnInitDialog()函數(shù)中設(shè)置我們字幕要使用的字體,這里采用最簡單的字體設(shè)置方式。

m_font->CreatePointFont(160,_T("宋體"));

5、字幕創(chuàng)建

我們點擊開始的時候,創(chuàng)建字幕的顯示。首先獲窗口的大小,設(shè)置字幕的static大小,并且在窗口最右邊顯示。設(shè)置字幕的字體。啟動字幕移動的定時器。

void CDemoLEDDlg::OnBnClickedButton1()
{
   if(m_flag) {
     SetTimer(1, 500, NULL);
     m_flag = false;
     return;
   }
 
   CString info;
   m_info.GetWindowTextW(info);
 
   CRect cRect;
   GetClientRect(cRect);  
<span style="white-space:pre"> </span> m_cx = cRect.Width();
   m_cy = cRect.Height();
 
   m_static->Create(info, WS_CHILD |WS_VISIBLE | SS_CENTER, CRect(m_cx - 30, 100, m_cx - 300 + 30, 140), this, IDC_STATIC_INFO);
   m_static->SetFont(m_font, FALSE);
 
   SetTimer(1, 500, NULL); 
}

6、字幕滾動

我們設(shè)置的定時器是500毫秒,也就是每500毫秒執(zhí)行一次這個函數(shù)。在這個函數(shù)中,我們控制每次向左移動30,當移動完了之后,關(guān)閉定時器。重新從右邊開始顯示,并且重啟開始定時器。

void CDemoLEDDlg::OnTimer(UINT_PTR nIDEvent)
{
   if (1== nIDEvent)
   {
     m_static->SetWindowPos(NULL,m_cx - 30, 100, 300, 40, SWP_NOZORDER);
     m_cx = m_cx - 30;
     if(m_cx < -250) {
       KillTimer(1);
       m_cx = GetSystemMetrics(SM_CXSCREEN);
       m_static->SetWindowPos(NULL,m_cx - 30, 100, 300, 40, SWP_NOZORDER);
       SetTimer(1, 500,NULL);
     }
   }
 
   CDialogEx::OnTimer(nIDEvent);
}

7、字幕背景

字幕的背景在OnPaint中設(shè)置,設(shè)置背景色為黑色。

void CDemoLEDDlg::OnPaint()
{
   if(IsIconic())
   {
     SendMessage(WM_ICONERASEBKGND,reinterpret_cast<WPARAM>(dc.GetSafeHdc()),0);
     intcxIcon = GetSystemMetrics(SM_CXICON);
     intcyIcon = GetSystemMetrics(SM_CYICON);
     CRect rect;
     GetClientRect(&rect);
     intx = (rect.Width() - cxIcon + 1) / 2;
     inty = (rect.Height() - cyIcon + 1) / 2;
     dc.DrawIcon(x, y, m_hIcon);
   }
   else
   {
     CPaintDC dc(this);
     CRect cRect;
     GetClientRect(cRect);
     CRect fRect(0, 90,cRect.Width(), 130);
     dc.FillSolidRect(fRect,RGB(0, 0, 0));
     CDialogEx::OnPaint();
   }
}

為了方便大家了解整個過程,項目的源碼:MFC實現(xiàn)滾動字幕

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用C語言判斷字符是否為空白字符或特殊字符的方法

    用C語言判斷字符是否為空白字符或特殊字符的方法

    這篇文章主要介紹了用C語言判斷字符是否為空白字符或特殊字符的方法,分別為isspace()函數(shù)的使用和ispunct()函數(shù)的使用,需要的朋友可以參考下
    2015-08-08
  • Linux C 時間函數(shù)應用

    Linux C 時間函數(shù)應用

    本文是關(guān)于Linux C時間函數(shù) time_t struct tm 進行了詳細的分析介紹并有應用實例,希望能幫到有需要的同學
    2016-07-07
  • 使用OpenCV實現(xiàn)檢測和追蹤車輛

    使用OpenCV實現(xiàn)檢測和追蹤車輛

    這篇文章主要為大家詳細介紹了使用OpenCV實現(xiàn)檢測和追蹤車輛,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++名稱空間特性

    C++名稱空間特性

    這篇文章主要介紹了C++名稱空間特性,文章圍繞C++名稱空間特性的相關(guān)資料展開詳細內(nèi)容,需要的小伙伴可以參考一下下文具體內(nèi)容,希望對你的學習有所幫助
    2022-01-01
  • C++詳細實現(xiàn)完整圖書管理功能

    C++詳細實現(xiàn)完整圖書管理功能

    隨著網(wǎng)絡技術(shù)的高速發(fā)展,計算機應用的普及,利用計算機對圖書館的日常工作進行管理勢在必行,本篇文章涵蓋一個圖書管理系統(tǒng)的全部實現(xiàn)代碼,大家可以查缺補漏,提升水平
    2022-05-05
  • C++機房預約系統(tǒng)實現(xiàn)流程實例

    C++機房預約系統(tǒng)實現(xiàn)流程實例

    這篇文章主要介紹了C++機房預約系統(tǒng)實現(xiàn)流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-10-10
  • 關(guān)于C++的強制類型轉(zhuǎn)換淺析

    關(guān)于C++的強制類型轉(zhuǎn)換淺析

    C++的強制類型轉(zhuǎn)換是我們在日常開發(fā)中經(jīng)常會遇到的,下面這篇文章主要給大家介紹了關(guān)于C++強制類型轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-09-09
  • C++異常使用詳解(看這一篇就夠了)

    C++異常使用詳解(看這一篇就夠了)

    C++中的異常是指在程序執(zhí)行過程中發(fā)生錯誤,導致程序無法正常運行的情況,下面這篇文章主要給大家介紹了關(guān)于C++異常使用的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • C++中cin.getline()和getline()函數(shù)的區(qū)別小結(jié)

    C++中cin.getline()和getline()函數(shù)的區(qū)別小結(jié)

    這篇文章主要介紹了C++中cin.getline()和getline()函數(shù)區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 聊聊C語言中sizeof運算符的一個陷阱

    聊聊C語言中sizeof運算符的一個陷阱

    在C語言中,sizeof()是一個判斷數(shù)據(jù)類型或者表達式長度的運算符,下面這篇文章主要給大家介紹了關(guān)于C語言中sizeof運算符的一個陷阱的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11

最新評論

永康市| 克山县| 泰州市| 丽水市| 嫩江县| 淮北市| 谷城县| 巧家县| 白水县| 启东市| 宜宾县| 广汉市| 临洮县| 汤原县| 安岳县| 张家口市| 黔西| 旌德县| 克什克腾旗| 嘉鱼县| 宁阳县| 赣榆县| 嘉禾县| 长岛县| 焦作市| 永修县| 秦皇岛市| 石门县| 从江县| 昌黎县| 宝应县| 兴化市| 汉阴县| 安丘市| 伊宁县| 沁水县| 万全县| 黄大仙区| 朝阳市| 扶沟县| 永靖县|