亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? newprogressctrl.cpp

?? 《MFC窗口程序設(shè)計(jì)》書(shū)籍源碼 詳細(xì)講解MFC框架程序設(shè)計(jì)
?? CPP
字號(hào):
// NewProgressCtrl.cpp : implementation file
//

#include "stdafx.h"
#include "..\commonctrls.h"
#include "NewProgressCtrl.h"
#include "ProgressWnd.h"
#include <time.h>
#include <math.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CNewProgressCtrl

CNewProgressCtrl::CNewProgressCtrl()
{
	LOGFONT logFount;
	
    m_lfPercent = 0.0;
    m_start     = clock();
	
    // create a horizontal fount
    m_fountHorz.CreatePointFont(90, "MS Sans", NULL);
	
    // create a vertical fount the same as the horizontal one
    m_fountHorz.GetLogFont(&logFount);
    logFount.lfEscapement  = 900;
    logFount.lfOrientation = 900;
    m_fountVert.CreateFontIndirect(&logFount);
}

CNewProgressCtrl::~CNewProgressCtrl()
{
}


BEGIN_MESSAGE_MAP(CNewProgressCtrl, CProgressCtrl)
	//{{AFX_MSG_MAP(CNewProgressCtrl)
	ON_WM_LBUTTONDOWN()
	ON_WM_ERASEBKGND()
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNewProgressCtrl message handlers

void CNewProgressCtrl::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CProgressWnd wndProgress(this, "彈出式進(jìn)度條", TRUE);
	#define TEST_RANGE 20000
	wndProgress.SetRange(0,TEST_RANGE);
	wndProgress.SetText("這是一個(gè)彈出式進(jìn)度條窗口...");
	
	for (int i = 0; i < TEST_RANGE; i++) {
		wndProgress.StepIt();
		wndProgress.PeekAndPump();
		
		if (wndProgress.Cancelled()) {
			MessageBox("取消進(jìn)度條窗口");
			break;
		}
	}
	CProgressCtrl::OnLButtonDown(nFlags, point);
}

BOOL CNewProgressCtrl::OnEraseBkgnd(CDC* pDC) 
{
	// TODO: Add your message handler code here and/or call default
	
	return TRUE;
}

void CNewProgressCtrl::OnPaint() 
{

	// TODO: Add your message handler code here
	int      nRange, nLower, nUpper;
    CBrush   brush(::GetSysColor(COLOR_HIGHLIGHT));
    CPaintDC dcPaint(this);// device context for painting
    CMemDC   dc(&dcPaint);
    CRect    rcClient, rcBlock, rcComplete;
    LONG     lStyle;
    int      nGapWidth = 2;
    int      nLoop, nBlocks;
    clock_t  now = clock();
    CString  strRemaining;

    GetRange(nLower, nUpper);
    GetClientRect(&rcClient);
    rcBlock = rcClient;

    nRange      = nUpper - nLower;
    m_lfPercent = (double)GetPos() / (double)nRange;
    lStyle      = ::GetWindowLong(*this, GWL_STYLE);

    if ((lStyle & PBS_VERTICAL) == PBS_VERTICAL)
        rcBlock.top = rcBlock.bottom - (int)(rcBlock.Height() * m_lfPercent);
    else
        rcBlock.right = rcBlock.left + (int)(rcBlock.Width() * m_lfPercent);
    rcComplete = rcBlock;

    if ((lStyle & PBS_SMOOTH) == PBS_SMOOTH)
        nBlocks = 1;
    else
    {
        #define BLOCKS 18.0
        rcBlock = rcClient;
        if ((lStyle & PBS_VERTICAL) == PBS_VERTICAL)
            rcBlock.top = rcBlock.bottom - (int)((rcClient.Height()-(9*nGapWidth)) / BLOCKS);
        else
            rcBlock.right = rcBlock.left + (int)((rcClient.Width()-(9*nGapWidth)) / BLOCKS);
        nBlocks = (int)((m_lfPercent*BLOCKS)+0.9);
    }

    if (GetParent() != NULL)
        ::FillRect(dc, &rcClient, (HBRUSH)GetParent()->SendMessage(WM_CTLCOLORSTATIC, (WPARAM)(HDC)dc, (LPARAM)this->GetSafeHwnd()));

    for (nLoop=1; nLoop<=nBlocks; nLoop++)
    {
        ::FillRect(dc, &rcBlock, brush);
        if ((lStyle & PBS_VERTICAL) == PBS_VERTICAL)
        {
            rcComplete.top = rcBlock.top;
            rcBlock.OffsetRect(0, -(rcBlock.Height()+nGapWidth));
        }
        else
        {
            rcComplete.right = rcBlock.right;
            rcBlock.OffsetRect(rcBlock.Width()+nGapWidth, 0);
        }
    }

    if (m_lfPercent > 0.02)
    {
        CFont  *pFount;
        double  lfSecsSoFar = (double)(now - m_start) / CLOCKS_PER_SEC;
        strRemaining = GetRemainingText(m_lfPercent, (lfSecsSoFar / m_lfPercent) * (1.0 - m_lfPercent));
        dc.SetBkMode(TRANSPARENT);

        if ((lStyle & PBS_VERTICAL) == PBS_VERTICAL)
        {
            CSize  szExt;
            CPoint ptText;

            // draw the vertical text centred in the control
            pFount = dc.SelectObject(&m_fountVert);
            szExt  = dc.GetTextExtent(strRemaining);
            ptText.x = (rcClient.Width() - szExt.cy) >> 1;
            ptText.y = rcClient.bottom - ((rcClient.Height() - szExt.cx) >> 1);

            dc.SaveDC();
            dc.IntersectClipRect(rcComplete);
            dc.SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT));
            dc.ExtTextOut(ptText.x, ptText.y, ETO_CLIPPED, rcClient, strRemaining, NULL);
            dc.RestoreDC(-1);

            dc.SaveDC();
            dc.ExcludeClipRect(rcComplete);
            dc.SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
            dc.ExtTextOut(ptText.x, ptText.y, ETO_CLIPPED, rcClient, strRemaining, NULL);
            dc.RestoreDC(-1);

            dc.SelectObject(pFount);
        }
        else
        {
            // horizontal text is easier
            pFount = dc.SelectObject(&m_fountHorz);

            dc.SaveDC();
            dc.IntersectClipRect(rcComplete);
            dc.SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT));
            dc.DrawText(strRemaining, rcClient, DT_NOPREFIX | DT_SINGLELINE | DT_VCENTER | DT_CENTER);
            dc.RestoreDC(-1);

            dc.SaveDC();
            dc.ExcludeClipRect(rcComplete);
            dc.SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
            dc.DrawText(strRemaining, rcClient, DT_NOPREFIX | DT_SINGLELINE | DT_VCENTER | DT_CENTER);
            dc.RestoreDC(-1);

            dc.SelectObject(pFount);
        }
    }
	// Do not call CProgressCtrl::OnPaint() for painting messages
}


CString CNewProgressCtrl::GetRemainingText(double lfPercent, double lfSecsRemaining)
{
    CString str;
    int     nSeconds = (int)fmod(lfSecsRemaining, 60.0);
	
    if (lfSecsRemaining < 60)
    {
        if (nSeconds < 1)
            str = "少于1秒";
        else
            str.Format("剩余%d 秒", nSeconds);
    }
    else
    {
        int nMinutes = (int)(lfSecsRemaining/60.0);
        str.Format("剩余%d分%d 秒", nMinutes,nSeconds);
    }
	
    return str;
}

void CNewProgressCtrl::ResetStartTime(void)
{
    m_start = clock();
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产a久久麻豆| 欧美男男青年gay1069videost| 91精品视频网| 亚瑟在线精品视频| 欧美三区在线观看| 日本午夜一本久久久综合| 欧美一级日韩一级| 精品一区二区三区蜜桃| 国产亚洲一本大道中文在线| 国产精品一区一区三区| 中文字幕一区二区日韩精品绯色| 成人免费毛片片v| 一区二区三区视频在线看| 一本色道久久加勒比精品| 亚洲第一av色| 精品国产区一区| www..com久久爱| 性感美女久久精品| 日韩精品专区在线影院重磅| 国产在线视频精品一区| 亚洲色图欧美偷拍| 欧美高清视频不卡网| 狠狠久久亚洲欧美| 一区二区三区不卡在线观看 | 国产精品理论在线观看| 色88888久久久久久影院按摩| 肉丝袜脚交视频一区二区| 欧美r级在线观看| 色综合中文字幕国产| 成人伦理片在线| 91高清视频免费看| 亚洲人精品午夜| 青青草成人在线观看| 国产精品1区二区.| 91国偷自产一区二区三区成为亚洲经典| 制服丝袜一区二区三区| 欧美系列在线观看| 日韩一区二区影院| 久久电影网站中文字幕| 91视视频在线直接观看在线看网页在线看| 1000部国产精品成人观看| 欧美日韩国产天堂| 高清日韩电视剧大全免费| 精品日韩一区二区三区| 午夜精品久久久久久久久久| 成人精品免费视频| 91丝袜美腿高跟国产极品老师| 蜜桃av一区二区在线观看 | 日韩欧美不卡一区| 亚洲欧美经典视频| av网站免费线看精品| 国产精品久久久久一区| 不卡欧美aaaaa| 美女在线一区二区| av不卡在线观看| 久久久久高清精品| 亚洲激情成人在线| 欧美亚洲一区二区三区四区| 亚洲女性喷水在线观看一区| 一本在线高清不卡dvd| 欧美日韩国产bt| 久久久久亚洲蜜桃| 中文字幕亚洲成人| 亚洲电影一区二区| 成人动漫精品一区二区| 337p亚洲精品色噜噜噜| 亚洲六月丁香色婷婷综合久久 | 婷婷综合久久一区二区三区| 色诱视频网站一区| 日韩中文欧美在线| 亚洲免费在线观看视频| av资源网一区| 国产精品国产自产拍高清av王其| 色天天综合色天天久久| 欧美美女喷水视频| 在线观看国产91| 日本精品裸体写真集在线观看| 成人午夜在线视频| 成人性色生活片| 91视频在线观看| 色婷婷激情一区二区三区| 色美美综合视频| 欧美三区免费完整视频在线观看| 91久久精品一区二区| 欧美亚洲动漫另类| 欧美久久久久久蜜桃| 制服丝袜亚洲播放| 久久美女艺术照精彩视频福利播放| 精品精品国产高清a毛片牛牛 | 欧美巨大另类极品videosbest | 捆绑紧缚一区二区三区视频| 久久精品国产99久久6| 精品系列免费在线观看| 国产一区二区久久| 成人精品一区二区三区四区| 成人aa视频在线观看| 色综合咪咪久久| 制服丝袜中文字幕一区| 日韩免费电影一区| 欧美高清在线精品一区| 日韩伦理免费电影| 亚洲成av人**亚洲成av**| 秋霞电影网一区二区| 国产一区二区三区| 一本大道av伊人久久综合| 欧美吻胸吃奶大尺度电影| 日韩欧美高清一区| 欧美激情在线免费观看| 一片黄亚洲嫩模| 日本成人在线一区| 国产成人一区在线| 日本精品免费观看高清观看| 日韩一区欧美小说| 国产在线精品免费av| 一区二区免费在线| 精品影院一区二区久久久| av不卡在线播放| 日韩精品在线看片z| 国产精品久久影院| 日韩不卡在线观看日韩不卡视频| 国内久久精品视频| 色婷婷综合久久久中文一区二区| 日韩免费性生活视频播放| 1区2区3区精品视频| 美女视频黄 久久| 色呦呦国产精品| 精品免费视频一区二区| 亚洲免费观看在线观看| 国产一区二区三区最好精华液| 色妹子一区二区| 国产精品色一区二区三区| 麻豆成人久久精品二区三区红 | 国产一区二区三区电影在线观看 | 蜜桃视频第一区免费观看| 成人综合激情网| 欧美不卡一区二区三区| 亚洲日本电影在线| 国产乱一区二区| 日韩视频在线一区二区| 三级不卡在线观看| 成人在线综合网| 精品国产乱码久久久久久夜甘婷婷 | 亚洲精品少妇30p| 国产成人综合网| 日韩一区二区影院| 亚洲国产美女搞黄色| 成人深夜福利app| 久久久噜噜噜久久中文字幕色伊伊| 亚洲aⅴ怡春院| 日本久久电影网| 国产精品久久久久久久久搜平片| 老司机免费视频一区二区| 欧美人与z0zoxxxx视频| 一区二区三区在线视频免费 | 亚洲精选一二三| 成人精品电影在线观看| 国产欧美日韩三级| 国模冰冰炮一区二区| 欧美精品一区二区久久婷婷| 日韩不卡在线观看日韩不卡视频| 精品视频123区在线观看| 亚洲精品国久久99热| 91亚洲永久精品| 136国产福利精品导航| 91美女在线看| 亚洲午夜精品一区二区三区他趣| 在线视频国产一区| 亚洲一级二级三级| 欧美体内she精高潮| 亚洲成人av在线电影| 欧美日韩色一区| 蜜桃av一区二区| 久久亚洲私人国产精品va媚药| 久久精品国产在热久久| 26uuu国产日韩综合| 国产一区二区三区国产| 国产午夜亚洲精品理论片色戒| 国产精品系列在线观看| 国产日韩亚洲欧美综合| 成人涩涩免费视频| 亚洲人精品午夜| 欧美日韩在线电影| 欧美96一区二区免费视频| 精品国产一区二区三区久久影院| 国内外成人在线| 国产精品色哟哟网站| av一本久道久久综合久久鬼色| 亚洲欧美自拍偷拍| 欧美日韩五月天| 麻豆精品久久精品色综合| 精品88久久久久88久久久| 亚洲电影视频在线| 欧美在线视频全部完| 天天射综合影视| 欧美成人一区二区三区片免费| 91免费版在线| 婷婷夜色潮精品综合在线| 久久综合九色综合97_久久久| 不卡视频一二三四| 日韩电影免费在线|