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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? textprogressctrl.cpp

?? EasyIsp下載線電路圖
?? CPP
字號:
// TextProgressCtrl.cpp : implementation file
//

#include "stdafx.h"
#include "TextProgressCtrl.h"

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

#ifndef _MEMDC_H_
//////////////////////////////////////////////////
// CMemDC - memory DC
//
// Author: Keith Rule
// Email:  keithr@europa.com
// Copyright 1996-1997, Keith Rule
//
// You may freely use or modify this code provided this
// Copyright is included in all derived versions.
//
// History - 10/3/97 Fixed scrolling bug.
//                   Added print support.
//
// This class implements a memory Device Context

class CMemDC : public CDC
{
public:

    // constructor sets up the memory DC
    CMemDC(CDC* pDC) : CDC()
    {
        ASSERT(pDC != NULL);

        m_pDC = pDC;
        m_pOldBitmap = NULL;
        m_bMemDC = !pDC->IsPrinting();
              
        if (m_bMemDC)    // Create a Memory DC
        {
            pDC->GetClipBox(&m_rect);
            CreateCompatibleDC(pDC);
            m_bitmap.CreateCompatibleBitmap(pDC, m_rect.Width(), m_rect.Height());
            m_pOldBitmap = SelectObject(&m_bitmap);
            SetWindowOrg(m_rect.left, m_rect.top);
        }
        else        // Make a copy of the relevent parts of the current DC for printing
        {
            m_bPrinting = pDC->m_bPrinting;
            m_hDC       = pDC->m_hDC;
            m_hAttribDC = pDC->m_hAttribDC;
        }
    }
    
    // Destructor copies the contents of the mem DC to the original DC
    ~CMemDC()
    {
        if (m_bMemDC) 
        {    
            // Copy the offscreen bitmap onto the screen.
            m_pDC->BitBlt(m_rect.left, m_rect.top, m_rect.Width(), m_rect.Height(),
                          this, m_rect.left, m_rect.top, SRCCOPY);

            //Swap back the original bitmap.
            SelectObject(m_pOldBitmap);
        } else {
            // All we need to do is replace the DC with an illegal value,
            // this keeps us from accidently deleting the handles associated with
            // the CDC that was passed to the constructor.
            m_hDC = m_hAttribDC = NULL;
        }
    }

    // Allow usage as a pointer
    CMemDC* operator->() {return this;}
        
    // Allow usage as a pointer
    operator CMemDC*() {return this;}

private:
    CBitmap  m_bitmap;      // Offscreen bitmap
    CBitmap* m_pOldBitmap;  // bitmap originally found in CMemDC
    CDC*     m_pDC;         // Saves CDC passed in constructor
    CRect    m_rect;        // Rectangle of drawing area.
    BOOL     m_bMemDC;      // TRUE if CDC really is a Memory DC.
};

#endif



/////////////////////////////////////////////////////////////////////////////
// CTextProgressCtrl

CTextProgressCtrl::CTextProgressCtrl()
{
    m_nPos            = 0;
    m_nStepSize        = 1;
    m_nMax            = 100;
    m_nMin            = 0;
    m_bShowText        = TRUE;
    m_strText.Empty();
    m_colFore        = ::GetSysColor(COLOR_HIGHLIGHT);
    m_colBk            = ::GetSysColor(COLOR_WINDOW);
    m_colTextFore    = ::GetSysColor(COLOR_HIGHLIGHT);
    m_colTextBk        = ::GetSysColor(COLOR_WINDOW);

    m_nBarWidth = -1;
}

CTextProgressCtrl::~CTextProgressCtrl()
{
}

BEGIN_MESSAGE_MAP(CTextProgressCtrl, CProgressCtrl)
    //{{AFX_MSG_MAP(CTextProgressCtrl)
    ON_WM_ERASEBKGND()
    ON_WM_PAINT()
    ON_WM_SIZE()
    //}}AFX_MSG_MAP
    ON_MESSAGE(WM_SETTEXT, OnSetText)
    ON_MESSAGE(WM_GETTEXT, OnGetText)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTextProgressCtrl message handlers

LRESULT CTextProgressCtrl::OnSetText(UINT, LPCTSTR szText)
{
    LRESULT result = Default();

    if ( (!szText && m_strText.GetLength()) ||
         (szText && (m_strText != szText))   )
    {
        m_strText = szText;
        Invalidate();
    }

    return result;
}

LRESULT CTextProgressCtrl::OnGetText(UINT cchTextMax, LPTSTR szText)
{
    if (!_tcsncpy(szText, m_strText, cchTextMax))
        return 0;
    else 
        return min(cchTextMax, (UINT) m_strText.GetLength());
}

BOOL CTextProgressCtrl::OnEraseBkgnd(CDC* /*pDC*/) 
{    
     return TRUE;
}

void CTextProgressCtrl::OnSize(UINT nType, int cx, int cy) 
{
    CProgressCtrl::OnSize(nType, cx, cy);
    
    m_nBarWidth    = -1;   // Force update if SetPos called
}

void CTextProgressCtrl::OnPaint() 
{
    if (m_nMin >= m_nMax) 
        return;

    CRect LeftRect, RightRect, ClientRect;
    GetClientRect(ClientRect);

    double Fraction = (double)(m_nPos - m_nMin) / ((double)(m_nMax - m_nMin));

    CPaintDC PaintDC(this); // device context for painting
    CMemDC dc(&PaintDC);
    //CPaintDC dc(this);    // device context for painting (if not double buffering)

    LeftRect = RightRect = ClientRect;

    LeftRect.right = LeftRect.left + (int)((LeftRect.right - LeftRect.left)*Fraction);
    dc.FillSolidRect(LeftRect, m_colFore);

    RightRect.left = LeftRect.right;
    dc.FillSolidRect(RightRect, m_colBk);

    if (m_bShowText)
    {
        CString str;
        if (m_strText.GetLength())
            str = m_strText;
        else
            str.Format("%d%%", (int)(Fraction*100.0));

        dc.SetBkMode(TRANSPARENT);

        CRgn rgn;
        rgn.CreateRectRgn(LeftRect.left, LeftRect.top, LeftRect.right, LeftRect.bottom);
        dc.SelectClipRgn(&rgn);
        dc.SetTextColor(m_colTextBk);

        dc.DrawText(str, ClientRect, DT_CENTER | DT_VCENTER | DT_SINGLELINE);

        rgn.DeleteObject();
        rgn.CreateRectRgn(RightRect.left, RightRect.top, RightRect.right, RightRect.bottom);
        dc.SelectClipRgn(&rgn);
        dc.SetTextColor(m_colTextFore);

        dc.DrawText(str, ClientRect, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
    }
}

void CTextProgressCtrl::SetForeColour(COLORREF col)
{
    m_colFore = col;
}

void CTextProgressCtrl::SetBkColour(COLORREF col)
{
    m_colBk = col;
}

void CTextProgressCtrl::SetTextForeColour(COLORREF col)
{
    m_colTextFore = col;
}

void CTextProgressCtrl::SetTextBkColour(COLORREF col)
{
    m_colTextBk = col;
}

COLORREF CTextProgressCtrl::GetForeColour()
{
    return m_colFore;
}

COLORREF CTextProgressCtrl::GetBkColour()
{
    return m_colBk;
}

COLORREF CTextProgressCtrl::GetTextForeColour()
{
    return m_colTextFore;
}

COLORREF CTextProgressCtrl::GetTextBkColour()
{
    return m_colTextBk;
}
/////////////////////////////////////////////////////////////////////////////
// CTextProgressCtrl message handlers

void CTextProgressCtrl::SetShowText(BOOL bShow)
{ 
    if (::IsWindow(m_hWnd) && m_bShowText != bShow)
        Invalidate();

    m_bShowText = bShow;
}


void CTextProgressCtrl::SetRange(int nLower, int nUpper)
{
    m_nMax = nUpper;
    m_nMin = nLower;
}

int CTextProgressCtrl::SetPos(int nPos) 
{    
    if (!::IsWindow(m_hWnd))
        return -1;

    int nOldPos = m_nPos;
    m_nPos = nPos;

    CRect rect;
    GetClientRect(rect);

    double Fraction = (double)(m_nPos - m_nMin) / ((double)(m_nMax - m_nMin));
    int nBarWidth = (int) (Fraction * rect.Width());

    if (nBarWidth != m_nBarWidth)
    {
        m_nBarWidth = nBarWidth;
        RedrawWindow();
    }

    return nOldPos;
}

int CTextProgressCtrl::StepIt() 
{    
   return SetPos(m_nPos + m_nStepSize);
}

int CTextProgressCtrl::OffsetPos(int nPos)
{
    return SetPos(m_nPos + nPos);
}

int CTextProgressCtrl::SetStep(int nStep)
{
    int nOldStep = nStep;
    m_nStepSize = nStep;
    return nOldStep;
}

void CTextProgressCtrl::SetText(CString strText)
{
	m_strText=strText;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区免费在线观看| 亚洲天堂网中文字| 日韩av中文在线观看| 7777精品伊人久久久大香线蕉完整版 | 欧美在线观看视频一区二区三区| 成人免费一区二区三区在线观看| 99久久精品免费看国产| 夜夜亚洲天天久久| 制服丝袜在线91| 狠狠色丁香久久婷婷综| 欧美国产综合色视频| 色就色 综合激情| 爽好久久久欧美精品| 欧美精品一区二区三区一线天视频 | 国产精品无码永久免费888| 99视频一区二区| 亚洲高清在线视频| 亚洲精品在线一区二区| 色综合久久久久网| 丝瓜av网站精品一区二区| 精品久久免费看| 色噜噜狠狠成人网p站| 日韩不卡一区二区| 1024精品合集| 91精品国产综合久久久久| 国产精品12区| 亚洲国产色一区| 国产三级久久久| 欧美日韩高清一区二区不卡| 精品一区二区三区日韩| 亚洲另类春色国产| 国产亚洲一区字幕| 欧美视频自拍偷拍| 成人avav在线| 狠狠色丁香九九婷婷综合五月| 亚洲人亚洲人成电影网站色| 日韩一区二区在线观看视频| av不卡在线播放| 久久成人免费日本黄色| 一区二区三区四区不卡视频| 久久综合久久综合亚洲| 欧美无人高清视频在线观看| 国产精品亚洲综合一区在线观看| 一区二区三区四区av| 久久久久国产精品麻豆| 日韩一区二区三区在线| 在线观看视频一区二区欧美日韩| 国产一区二区福利视频| 美国毛片一区二区| 亚洲综合免费观看高清完整版在线| 国产欧美日韩在线视频| 日韩欧美国产成人一区二区| 欧洲激情一区二区| 99久久精品免费| 国产高清不卡一区| 激情六月婷婷久久| 免费在线观看不卡| 午夜视频一区二区| 亚洲韩国精品一区| 亚洲乱码中文字幕综合| 中文在线免费一区三区高中清不卡| 日韩你懂的在线播放| 在线免费观看日本一区| 91浏览器在线视频| 91在线免费视频观看| 成人av免费网站| 国产91露脸合集magnet| 国产一区二区三区免费观看| 久久精品国产免费看久久精品| 亚洲国产精品精华液网站| 亚洲综合一区二区三区| 亚洲美女电影在线| 亚洲激情av在线| 亚洲一区二区精品3399| 亚洲bt欧美bt精品| 日韩1区2区3区| 蜜桃av一区二区| 精品一区二区三区免费观看| 国内精品视频666| 国产酒店精品激情| hitomi一区二区三区精品| aaa亚洲精品| 欧美亚洲国产一区二区三区| 欧美日韩久久久一区| 91精品久久久久久久99蜜桃 | 精品一区二区三区在线播放视频| 美女国产一区二区| 国产精品中文字幕一区二区三区| 国产成人欧美日韩在线电影| jlzzjlzz亚洲日本少妇| 色婷婷激情一区二区三区| 色狠狠桃花综合| 91精品国产福利| 久久久久久免费网| 最新日韩av在线| 亚洲777理论| 狠狠色狠狠色综合系列| 成人高清视频在线观看| 一本色道a无线码一区v| 欧美一级片在线看| 日本一区二区三区久久久久久久久不| 国产精品水嫩水嫩| 亚洲制服欧美中文字幕中文字幕| 丝袜诱惑亚洲看片| 国内成人精品2018免费看| jizzjizzjizz欧美| 8v天堂国产在线一区二区| 久久这里只精品最新地址| 国产精品全国免费观看高清| 最新国产精品久久精品| 日韩精彩视频在线观看| 国产精品中文字幕日韩精品| 91美女片黄在线观看| 欧美电视剧在线看免费| 综合欧美一区二区三区| 麻豆成人久久精品二区三区红| 成人免费视频视频在线观看免费| 欧美日韩国产高清一区二区| 久久影院视频免费| 亚洲国产精品久久久男人的天堂| 国内精品国产成人| 欧美日韩一区二区三区不卡| 久久精品水蜜桃av综合天堂| 一区二区三区视频在线观看| 国产自产2019最新不卡| 欧美性猛交xxxxxx富婆| 国产午夜精品理论片a级大结局 | 久久一夜天堂av一区二区三区| 中文字幕综合网| 国产一区二区三区蝌蚪| 欧美裸体bbwbbwbbw| 国产精品美女久久久久高潮| 热久久免费视频| aa级大片欧美| 久久一区二区三区四区| 男人操女人的视频在线观看欧美| 99精品在线观看视频| 久久一区二区视频| 麻豆精品视频在线观看| 91激情在线视频| 中文字幕一区二区三区不卡| 激情综合色综合久久| 欧美人体做爰大胆视频| 亚洲精品精品亚洲| 丰满放荡岳乱妇91ww| 久久这里只有精品6| 麻豆精品在线看| 欧美精品久久天天躁| 一个色在线综合| 色综合 综合色| 国产精品久久久久久久久久久免费看 | 欧美国产日本视频| 国产麻豆视频一区| 日韩欧美一区在线观看| 日韩国产一区二| 欧美日韩一二三区| 亚洲午夜免费电影| 色国产精品一区在线观看| 亚洲美女视频一区| 日本国产一区二区| 一区二区三区四区亚洲| 色综合一个色综合| 亚洲另类中文字| 91成人在线观看喷潮| 亚洲韩国精品一区| 欧美日韩国产一区二区三区地区| 伊人色综合久久天天人手人婷| 日本乱人伦aⅴ精品| 一区二区三区中文字幕精品精品| 91碰在线视频| 亚洲成人第一页| 欧美一区二区三区婷婷月色| 日韩精品一级中文字幕精品视频免费观看| 欧美一a一片一级一片| 一级精品视频在线观看宜春院 | 日韩美女视频在线| 久草在线在线精品观看| 久久日韩精品一区二区五区| 国产精品一区二区不卡| 国产日韩三级在线| 99re热这里只有精品免费视频| 亚洲女爱视频在线| 欧美高清视频www夜色资源网| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲国产色一区| 日韩一级黄色大片| 国产精品一区二区在线播放| 国产精品亲子伦对白| 一本一道久久a久久精品| 午夜精品一区二区三区免费视频| 欧美一区二区在线观看| 国产精品88888| 一区二区三区欧美久久| 337p亚洲精品色噜噜狠狠| 国产麻豆精品95视频| 亚洲色图第一区| 欧美日韩成人高清| 国产精品一级二级三级| 亚洲精品国产成人久久av盗摄 | 国产精品中文字幕日韩精品|