亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MFC對(duì)話框中實(shí)現(xiàn)走馬燈效果

 更新時(shí)間:2020年05月30日 14:07:37   作者:Been_Stone  
這篇文章主要為大家詳細(xì)介紹了MFC對(duì)話框中實(shí)現(xiàn)走馬燈效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了MFC對(duì)話框中實(shí)現(xiàn)走馬燈,文字信息循環(huán)播放顯示效果,供大家參考,具體內(nèi)容如下

CMFCDlg.h 對(duì)話框

// CMFCDlg.h 對(duì)話框
class CMFCDlg : public CDialogEx
{
// 構(gòu)造
public:
 CMFCDlg(CWnd* pParent = nullptr); // 標(biāo)準(zhǔn)構(gòu)造函數(shù)

// 對(duì)話框數(shù)據(jù)
#ifdef AFX_DESIGN_TIME
 enum { IDD = IDD_DLG_M };
#endif

// 實(shí)現(xiàn)
protected:
 HICON m_hIcon;
 int m_nLeft;
 CString m_szText;
 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
 // 生成的消息映射函數(shù)
 virtual BOOL OnInitDialog();
 afx_msg void OnPaint();
 afx_msg HCURSOR OnQueryDragIcon();
 DECLARE_MESSAGE_MAP()
public:
 afx_msg void OnTimer(UINT_PTR nIDEvent);
};

MFCDlg.cpp: 實(shí)現(xiàn)文件

// MFCDlg.cpp: 實(shí)現(xiàn)文件


#include "pch.h"
#include "framework.h"
#include "MFC.h"
#include "MFCDlg.h"
#include "afxdialogex.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// CMFCDlg 對(duì)話框

CMFCDlg::CMFCDlg(CWnd* pParent /*=nullptr*/)
 : CDialogEx(IDD_DLG_M, pParent)
{
 m_szText = _T("這是一條循環(huán)播放的信息 ");
 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CMFCDlg::DoDataExchange(CDataExchange* pDX)
{
 CDialogEx::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CMFCDlg, CDialogEx)
 ON_WM_PAINT()
 ON_WM_QUERYDRAGICON()
 ON_WM_TIMER()
END_MESSAGE_MAP()


// CMFCDlg 消息處理程序

BOOL CMFCDlg::OnInitDialog()
{
 CDialogEx::OnInitDialog();

 // 設(shè)置此對(duì)話框的圖標(biāo)。 當(dāng)應(yīng)用程序主窗口不是對(duì)話框時(shí),框架將自動(dòng)
 // 執(zhí)行此操作
 SetIcon(m_hIcon, TRUE);  // 設(shè)置大圖標(biāo)
 SetIcon(m_hIcon, FALSE); // 設(shè)置小圖標(biāo)

 CRect rect;
 GetClientRect(rect);
 m_nLeft = rect.right;
 SetTimer(1, 60, NULL);
 
 return TRUE; // 除非將焦點(diǎn)設(shè)置到控件,否則返回 TRUE
}

// 如果向?qū)υ捒蛱砑幼钚』粹o,則需要下面的代碼
// 來(lái)繪制該圖標(biāo)。 對(duì)于使用文檔/視圖模型的 MFC 應(yīng)用程序,
// 這將由框架自動(dòng)完成。

void CMFCDlg::OnPaint()
{
 if (IsIconic())
 {
 CPaintDC dc(this); // 用于繪制的設(shè)備上下文

 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

 // 使圖標(biāo)在工作區(qū)矩形中居中
 int cxIcon = GetSystemMetrics(SM_CXICON);
 int cyIcon = GetSystemMetrics(SM_CYICON);
 CRect rect;
 GetClientRect(&rect);
 int x = (rect.Width() - cxIcon + 1) / 2;
 int y = (rect.Height() - cyIcon + 1) / 2;

 // 繪制圖標(biāo)
 dc.DrawIcon(x, y, m_hIcon);
 }
 else
 {
 CDialogEx::OnPaint();
 }
}

//當(dāng)用戶拖動(dòng)最小化窗口時(shí)系統(tǒng)調(diào)用此函數(shù)取得光標(biāo)
//顯示。
HCURSOR CMFCDlg::OnQueryDragIcon()
{
 return static_cast<HCURSOR>(m_hIcon);
}


void CMFCDlg::OnTimer(UINT_PTR nIDEvent)
{
 CRect rt;
 GetClientRect(rt);
 CClientDC dc(this);
 dc.SetBkColor(GetSysColor(COLOR_3DFACE));
 dc.SelectObject(GetFont());
 CSize size = dc.GetOutputTextExtent(m_szText);
 dc.TextOut(m_nLeft, rt.Height() - size.cy, m_szText);
 m_nLeft -= 5;
 if (m_nLeft + size.cx <= 0)
 m_nLeft = rt.right;
 CDialogEx::OnTimer(nIDEvent);
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++11?關(guān)鍵字?const?使用小結(jié)

    C++11?關(guān)鍵字?const?使用小結(jié)

    const大致意思是“我承諾不改變這個(gè)值”。主要用于說(shuō)明接口,這樣在把變量傳入函數(shù)時(shí)就不必?fù)?dān)心變量會(huì)在函數(shù)內(nèi)被改變,本文給大家介紹C++11?關(guān)鍵字?const?使用小結(jié),感興趣的朋友一起看看吧
    2021-12-12
  • C++?OpenCV實(shí)戰(zhàn)之零部件的自動(dòng)光學(xué)檢測(cè)

    C++?OpenCV實(shí)戰(zhàn)之零部件的自動(dòng)光學(xué)檢測(cè)

    這篇文章主要為大家介紹一個(gè)C++?OpenCV的實(shí)戰(zhàn)——零部件的自動(dòng)光學(xué)檢測(cè),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-09-09
  • C語(yǔ)言中的數(shù)組和指針匯編代碼分析實(shí)例

    C語(yǔ)言中的數(shù)組和指針匯編代碼分析實(shí)例

    這篇文章主要介紹了C語(yǔ)言中的數(shù)組和指針匯編代碼分析實(shí)例,本文用一則C語(yǔ)言例子來(lái)得到對(duì)應(yīng)的匯編代碼,并一一注解每句匯編代碼的含義,需要的朋友可以參考下
    2015-06-06
  • C++位操作的常見(jiàn)用法小結(jié)

    C++位操作的常見(jiàn)用法小結(jié)

    這篇文章主要介紹了C++位操作的常見(jiàn)用法,包括了判斷奇偶、交換兩個(gè)數(shù)、正負(fù)轉(zhuǎn)換、求絕對(duì)值等,需要的朋友可以參考下
    2014-09-09
  • C語(yǔ)言進(jìn)階教程之循環(huán)語(yǔ)句缺陷詳析

    C語(yǔ)言進(jìn)階教程之循環(huán)語(yǔ)句缺陷詳析

    循環(huán)語(yǔ)句是用于重復(fù)執(zhí)行某條語(yǔ)句(循環(huán)體)的語(yǔ)句,它包含一個(gè)控制表達(dá)式,每循環(huán)執(zhí)行一次都要對(duì)控制表達(dá)式進(jìn)行判斷,如果表達(dá)式為真,則繼續(xù)執(zhí)行循環(huán),這篇文章主要給大家介紹了關(guān)于C語(yǔ)言進(jìn)階教程之循環(huán)語(yǔ)句缺陷的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • C++11/C++14中constexpr的使用案例詳解

    C++11/C++14中constexpr的使用案例詳解

    C++11規(guī)定,允許將變量聲明為constexpr類型以便由編譯器來(lái)驗(yàn)證變量的值是否是一個(gè)常量表達(dá)式,這篇文章主要介紹了C++11/C++14中constexpr的使用,需要的朋友可以參考下
    2023-06-06
  • C++類中的特殊成員函數(shù)示例詳解

    C++類中的特殊成員函數(shù)示例詳解

    這篇文章主要給大家介紹了關(guān)于C++類中特殊成員函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • C++內(nèi)存分布及用法

    C++內(nèi)存分布及用法

    這篇文章主要介紹了C++內(nèi)存分布及用法,從內(nèi)存的基礎(chǔ)概念到內(nèi)存分配進(jìn)行了講解,內(nèi)存是我們開(kāi)發(fā)中最重要的一部分,往往邏輯上的錯(cuò)誤就會(huì)造成內(nèi)存泄漏,導(dǎo)致程序無(wú)法運(yùn)行,下面我們就來(lái)了解文章對(duì)該內(nèi)容的詳細(xì)介紹
    2021-12-12
  • C語(yǔ)言二叉樹(shù)層序遍歷

    C語(yǔ)言二叉樹(shù)層序遍歷

    這篇文章主要介紹了C語(yǔ)言二叉樹(shù)層序遍歷,文章基于C語(yǔ)言的相關(guān)資料展開(kāi)詳細(xì)的文章內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-04-04
  • C++ LeetCode1832題解判斷句子是否為全字母句

    C++ LeetCode1832題解判斷句子是否為全字母句

    這篇文章主要為大家介紹了C++ LeetCode1832題解判斷句子是否為全字母句示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12

最新評(píng)論