久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2234|回復: 0
收起左側

VC6.0編寫的一個大屏七段數碼時鐘程序 純代碼繪制七段筆畫

[復制鏈接]
ID:920755 發表于 2022-5-4 08:10 | 顯示全部樓層 |閱讀模式
    VC6.0編寫的一個大屏七段數碼時鐘,純代碼繪制七段筆畫,使用定時函數讀取系統時間,再以七段數碼管的形式顯示在屏幕上,字體顏色可變,背景顏色可調節。

運行效果.png 程序窗口.png

部分程序如下:        //{{AFX_DATA(CLEDClockDlg)
        enum { IDD = IDD_LEDCLOCK_DIALOG };
        CDigitalClock m_clock;
        int                m_green;
        UINT        m_hour;
        UINT        m_minute;
        UINT        m_second;
        int                m_blue;
        int                m_red;
        int                m_shour;
        int                m_sminute;
        int                m_ssecond;


/////////////////////////////////////////////////////////////////////////////
// CLEDClockDlg message handlers

BOOL CLEDClockDlg::OnInitDialog()
{
        CDialog::OnInitDialog();

        // Add "About..." menu item to system menu.

        // IDM_ABOUTBOX must be in the system command range.
        ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
        ASSERT(IDM_ABOUTBOX < 0xF000);

        CMenu* pSysMenu = GetSystemMenu(FALSE);
        if (pSysMenu != NULL)
        {
                CString strAboutMenu;
                strAboutMenu.LoadString(IDS_ABOUTBOX);
                if (!strAboutMenu.IsEmpty())
                {
                        pSysMenu->AppendMenu(MF_SEPARATOR);
                        pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
                }
        }

        // Set the icon for this dialog.  The framework does this automatically
        //  when the application's main window is not a dialog
        SetIcon(m_hIcon, TRUE);                        // Set big icon
        SetIcon(m_hIcon, FALSE);                // Set small icon
        
        // TODO: Add extra initialization here
    m_red=0;
    m_green=255;
        m_blue=0;
    m_clock.SetBkColor(RGB(0,0,0));
    m_clock.SetTextColor(RGB( m_red,m_green,m_blue));
        CTime time=CTime::GetCurrentTime();
        m_shour=time.GetHour();
        m_sminute=time.GetMinute();
        m_ssecond=time.GetSecond();
        UpdateData(false);
        SetTimer(1,1000,NULL);
        return TRUE;  // return TRUE  unless you set the focus to a control
}
/繪畫數碼管分,通過ADD Member Function...添加
void CDigitalClock::DrawMinute()
{
        int nLeft=m_nXmargin+3*m_nWidth+m_nSpace;
        if (m_nMinute<10)
        {
                DrawSingleNumber(0,nLeft);
                nLeft+=m_nWidth+m_nSpace;
                DrawSingleNumber(m_nMinute,nLeft);
        }
        else
        {
                TCHAR c[10]={0};               
                _itoa(m_nMinute,c,10);               
                int num1=c[0]-48;
                int num2=c[1]-48;
                DrawSingleNumber(num1,nLeft);
                nLeft+=m_nWidth+m_nSpace;
                DrawSingleNumber(num2,nLeft);               
        }
        nLeft+=m_nWidth;
        Draw2Dot(nLeft);
}
//繪畫數碼管秒,通過ADD Member Function...添加
void CDigitalClock::DrawSecond()
{
        int nLeft=m_nXmargin+6*m_nWidth+2*m_nSpace;
        if (m_nSecond<10)
        {
                DrawSingleNumber(0,nLeft);
        //        nLeft+=(int)(1.4*m_nWidth);
                nLeft+=m_nWidth+m_nSpace;
                DrawSingleNumber(m_nSecond,nLeft);
        }
        else
        {
                TCHAR *c=new TCHAR[10];
                _itoa(m_nSecond,c,10);
                int num1=c[0]-48;
                int num2=c[1]-48;
                DrawSingleNumber(num1,nLeft);
                nLeft+=m_nWidth+m_nSpace;
                DrawSingleNumber(num2,nLeft);        
        }
}

  //繪畫數碼管時,通過ADD Member Function...添加
void CDigitalClock::DrawHour()
{
        int nLeft=m_nXmargin;
        if (m_nHour<10)
        {
                DrawSingleNumber(0,nLeft);
                nLeft+=m_nWidth+m_nSpace;
                DrawSingleNumber(m_nHour,nLeft);
        }
        else
        {
                TCHAR *c=new TCHAR[10];
                _itoa(m_nHour,c,10);
                int num1=c[0]-48;
                int num2=c[1]-48;
                DrawSingleNumber(num1,nLeft);
                nLeft+=m_nWidth+m_nSpace;
                DrawSingleNumber(num2,nLeft);
        }
        nLeft+=m_nWidth;
        Draw2Dot(nLeft);
}
void CLEDClockDlg::OnTimer(UINT nIDEvent)
{
        // TODO: Add your message handler code here and/or call default
        CTime time=CTime::GetCurrentTime();
        UpdateData(true);
    int nHour=time.GetHour();
        int nMinute=time.GetMinute();
        int nSecond=time.GetSecond();
        m_second++;
        if(m_second>59)
    {
           m_second=0;
       m_minute++;
           if(m_minute>59)
           {
             m_minute=0;
             m_hour++;
             if(m_hour>23)
                 {
               m_hour=0;
                 }
           }
        }
         
    if(m_blue==0)
        {
                if(m_red<255)
                {
                        m_red+=15;
                }
        }
        
         if(m_red==255)
        {
                if(m_green>0)
                {
                        m_green-=15;
        }
        }
         if(m_green==0)
        {
                if(m_blue<255)
                {
                        m_blue+=15;
        }
        }
if(m_blue==255)
        {
                if(m_red>0)
                {
                        m_red-=15;
                }
        }               
         if(m_red==0)
        {
                if(m_green<255)
                {
                        m_green+=15;
                }
        }
    if(m_green==255)
        {
                if(m_blue>0)
                {
                    m_blue-=15;
                }
        }               
        m_clock.SetTextColor(RGB(m_red,m_green,m_blue));
        m_clock.SetClock(nHour,nMinute,nSecond);

        UpdateData(false);
        CDialog::OnTimer(nIDEvent);
}

詳細程序請下載附件: LEDClock.7z (3.48 MB, 下載次數: 19)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99在线免费视频 | 91五月婷蜜桃综合 | 久久久久久久av | 亚洲区在线 | 国产伦一区二区三区 | 99热电影| 欧美激情a∨在线视频播放 成人免费共享视频 | 日日夜夜操天天干 | 国产成人精品一区二三区在线观看 | 毛片入口| 欧美成人aaa级毛片在线视频 | 色888www视频在线观看 | 国产一区二区三区视频免费观看 | 久久久一二三 | 美女国内精品自产拍在线播放 | 亚洲精品久久久一区二区三区 | 成人h视频在线 | 精品av | 成人精品一区二区三区 | 成人国产精品久久 | 天天艹天天干天天 | 欧美一级视频免费看 | 精品久久久久久久久久久久 | 欧美二区在线 | 成年人网站在线观看视频 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 久久久青草婷婷精品综合日韩 | 在线免费观看毛片 | 精品视频久久久久久 | 欧美亚洲高清 | 超碰在线免费av | 91在线视频观看免费 | 一区二区三区免费在线观看 | 一区在线播放 | 伊人网99 | 亚洲人在线| 色综合色综合 | 国产精品国产a级 | 国产毛片毛片 | www.日韩欧美 | 久久久精品黄色 |