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

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

?? chartwnd.cpp

?? PCI的一個測試程序,可以測試PCI driver和BOARD的功能.
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// ChartWnd.cpp : 實現文件
//

#include "stdafx.h"
#include "TestFunc.h"
#include "PCIEBoardTest.h"
#include ".\chartdata.h"
#include "ChartWnd.h"
#include ".\chartwnd.h"



// CChartWnd

IMPLEMENT_DYNAMIC(CChartWnd, CWnd)
CChartWnd::CChartWnd()
{
    m_nChartCount = 0;
    for(int i=0; i<MAX_CHART_COUNT; ++i)
        m_pChartItem[i] = NULL;

    m_AxresInfor[0].Transformer = 1024;         // k
    m_AxresInfor[1].Transformer = 1000 * 1000;  // M
}

CChartWnd::~CChartWnd()
{
    for(int i=0; i<MAX_CHART_COUNT; ++i)
    {
        if (m_pChartItem[i])
        {
            delete m_pChartItem[i];
            m_pChartItem[i] = NULL;
        }
    }

    m_nChartCount = 0;
}


BEGIN_MESSAGE_MAP(CChartWnd, CWnd)
    ON_WM_ERASEBKGND()
    ON_WM_CREATE()
    ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()



// CChartWnd 消息處理程序


BOOL CChartWnd::OnEraseBkgnd(CDC* pDC)
{
    // TODO: 在此添加消息處理程序代碼和/或調用默認值
    CRect   rectClient;
    CRect   rectSubTitle;       // 圖示說明區域
    CRect   rectFrame;          // 坐標系區域,其左下角即為原點位置

    LOGFONT lfTitle;
    LOGFONT lfAxresName[2];
    LOGFONT lfSubTitle;
    LOGFONT lfAxresLabel[2];

    CFont   fontTitle;
    CFont   fontAxresName[2];
    CFont   fontSubTitle;
    CFont   fontAxresLabel[2];

    CFont* pOldFont;

    CSize   sizeTitle;
    CSize   sizeSubTitle;
    CSize   sizeXTitle;
    CSize   sizeYTitle;
    CSize   sizeXLabel;
    CSize   sizeYLabel;

    CPen    penFrame;
    CPen *  pOldPen;

    int     i;
    int     j;


    ::ZeroMemory (&lfTitle, sizeof (lfTitle));
    ::ZeroMemory (&lfAxresName[0], sizeof (lfAxresName[0]));
    ::ZeroMemory (&lfAxresName[1], sizeof (lfAxresName[1]));
    ::ZeroMemory (&lfSubTitle, sizeof (lfSubTitle));
    ::ZeroMemory (&lfAxresLabel[0], sizeof (lfAxresLabel[0]));
    ::ZeroMemory (&lfAxresLabel[1], sizeof (lfAxresLabel[1]));

    // Title
    lfTitle.lfHeight = 120;
    lfTitle.lfWeight = FW_BOLD;
    ::lstrcpy (lfTitle.lfFaceName, _T ("System"));
    fontTitle.CreatePointFontIndirect (&lfTitle);

    // X Axres Name
    lfAxresName[0].lfHeight = 120;
    lfAxresName[0].lfWeight = FW_NORMAL;
    ::lstrcpy (lfAxresName[0].lfFaceName, _T ("System"));
    fontAxresName[0].CreatePointFontIndirect (&lfAxresName[0]);

    // Y Axres Name
    lfAxresName[1].lfHeight = 120;
    lfAxresName[1].lfWeight = FW_NORMAL;
    lfAxresName[1].lfEscapement  = 900;
    lfAxresName[1].lfOrientation = 900;
    ::lstrcpy (lfAxresName[1].lfFaceName, _T ("System"));
    fontAxresName[1].CreatePointFontIndirect (&lfAxresName[1]);

    // SubTitle Name
    lfSubTitle.lfHeight = 90;
    lfSubTitle.lfWeight = FW_NORMAL;
    ::lstrcpy (lfSubTitle.lfFaceName, _T ("System"));
    fontSubTitle.CreatePointFontIndirect (&lfSubTitle);

    // X Axres Label
    lfAxresLabel[0].lfHeight = 100;
    lfAxresLabel[0].lfWeight = FW_NORMAL;
    ::lstrcpy (lfAxresLabel[0].lfFaceName, _T ("System"));
    fontAxresLabel[0].CreatePointFontIndirect (&lfAxresLabel[0]);

    // Y Axres Label
    lfAxresLabel[1].lfHeight = 100;
    lfAxresLabel[1].lfWeight = FW_NORMAL;
    ::lstrcpy (lfAxresLabel[1].lfFaceName, _T ("System"));
    fontAxresLabel[1].CreatePointFontIndirect (&lfAxresLabel[1]);




    GetClientRect(rectClient);

    // 背景
    pDC->FillSolidRect(rectClient, RGB(255, 255, 255));

    // 計算X/Y軸信息,如圖形顯示比較慢,可以放到AddChart等位置去更新,以節省繪圖時間
    CalcChart();

    // 計算各個位置:
    //      title顯示位置、xtitle顯示位置、ytitle顯示位置、原點位置、x軸頂端位置、y軸頂端位置、x/y顯示比率
    //      圖示顯示位置/大小

    // 顯示Title
    pOldFont = pDC->SelectObject (&fontTitle);
    sizeTitle = pDC->GetOutputTextExtent(m_strTitle);
    pDC->TextOut ((rectClient.left + rectClient.right - sizeTitle.cx) / 2, 2, m_strTitle);
    pDC->SelectObject (pOldFont);
    
    // 顯示X Title
    pOldFont = pDC->SelectObject (&fontAxresName[0]);
    sizeXTitle = pDC->GetOutputTextExtent(m_strAxresName[0]);
    pDC->TextOut ((rectClient.left + rectClient.right - sizeXTitle.cx) / 2, rectClient.bottom - 2 - sizeXTitle.cy, m_strAxresName[0]);
    pDC->SelectObject (pOldFont);

    // 顯示Y Title
    pOldFont = pDC->SelectObject (&fontAxresName[1]);
    sizeYTitle = pDC->GetOutputTextExtent(m_strAxresName[1]);
    pDC->TextOut (rectClient.left + 5, (rectClient.top + rectClient.bottom + sizeYTitle.cx) / 2, m_strAxresName[1]);
    pDC->SelectObject (pOldFont);

    // 獲取Xlabel、Ylabel大小
    pOldFont = pDC->SelectObject(&fontAxresLabel[0]);
//    sizeXLabel = pDC->GetOutputTextExtent("000");
    sizeXLabel.cx = 0;
    for(i=0; i<=m_AxresInfor[0].Layers; ++i)
    {
        // label 
        CString     strLabel;
        strLabel.Format("%d", (int)((m_AxresInfor[0].BaseValue + i * m_AxresInfor[0].UnitValue) / (m_AxresInfor[0].Transformer)));

        CSize       sizeTemp;
        sizeTemp = pDC->GetOutputTextExtent(strLabel);

        if (sizeTemp.cx > sizeXLabel.cx)
            sizeXLabel = sizeTemp;
    }
    pDC->SelectObject(pOldFont);

    pOldFont = pDC->SelectObject(&fontAxresLabel[1]);
//    sizeYLabel = pDC->GetOutputTextExtent("000");
    sizeYLabel.cx = 0;
    for(i=0; i<=m_AxresInfor[1].Layers; ++i)
    {
        // label 
        CString     strLabel;
        if (m_AxresInfor[1].UnitValue > m_AxresInfor[1].Transformer && (m_AxresInfor[1].UnitValue % m_AxresInfor[1].Transformer == 0))
            strLabel.Format("%d", (int)((m_AxresInfor[1].BaseValue + i * m_AxresInfor[1].UnitValue) / (m_AxresInfor[1].Transformer)));
        else
            strLabel.Format("%.1f", (m_AxresInfor[1].BaseValue + i * m_AxresInfor[1].UnitValue * 1.0) / (m_AxresInfor[1].Transformer));

        CSize       sizeTemp;
        sizeTemp = pDC->GetOutputTextExtent(strLabel);

        if (sizeTemp.cx > sizeYLabel.cx)
            sizeYLabel = sizeTemp;
    }
    pDC->SelectObject(pOldFont);

    // 顯示圖示
    pOldFont = pDC->SelectObject(&fontSubTitle);
    sizeSubTitle = pDC->GetOutputTextExtent("000");
    sizeSubTitle.cy += 4;   //加上畫矩形所需的點
    rectSubTitle.left = sizeYTitle.cy + 8 + sizeYLabel.cx;
    rectSubTitle.top  = sizeTitle.cy + 3;
    rectSubTitle.bottom = rectSubTitle.top + sizeSubTitle.cy + 4;
        //right 待定
    rectSubTitle.right = rectSubTitle.left + 2;
    for(i=0; i<m_nChartCount; ++i)
    {
        CPen    tmpPen;
        CPen *  pOldPen;

        // 畫線
        pDC->MoveTo(rectSubTitle.right, (rectSubTitle.top + rectSubTitle.bottom) / 2);
        tmpPen.CreatePen(PS_SOLID, 1, m_pChartItem[i]->m_color);
        pOldPen = pDC->SelectObject(&tmpPen);
        pDC->LineTo(rectSubTitle.right + 30, (rectSubTitle.top + rectSubTitle.bottom) / 2);

        // 畫圖形
        POINT   Point[5];
        Point[0].x = rectSubTitle.right + 13;
        Point[0].y = (rectSubTitle.top + rectSubTitle.bottom) / 2 - 2;
        Point[1].x = rectSubTitle.right + 17;
        Point[1].y = Point[0].y;
        Point[2].x = Point[1].x;
        Point[2].y = (rectSubTitle.top + rectSubTitle.bottom) / 2 + 2;
        Point[3].x = Point[0].x;
        Point[3].y = Point[2].y;
        Point[4].x = Point[0].x;
        Point[4].y = Point[0].y;

        pDC->Polyline(Point, 5);
        pDC->SelectObject(pOldPen);

        rectSubTitle.right += 31;

        CSize   sizeTemp;
        sizeTemp = pDC->GetOutputTextExtent(m_pChartItem[i]->m_name);

        pDC->TextOut(rectSubTitle.right, (rectSubTitle.top + rectSubTitle.bottom - sizeTemp.cy)/2, m_pChartItem[i]->m_name);

        rectSubTitle.right += sizeTemp.cx + 2;
    }
    // 顯示SUBTITLE的外框
    if (m_nChartCount > 0)
    {
        CPen    tmpPen;

        tmpPen.CreatePen(PS_SOLID, 1, RGB(0,0,0));
        pOldPen = pDC->SelectObject(&tmpPen);

        POINT   Point[5];
        Point[0].x = rectSubTitle.left;
        Point[0].y = rectSubTitle.top;
        Point[1].x = rectSubTitle.right;
        Point[1].y = rectSubTitle.top;
        Point[2].x = rectSubTitle.right;
        Point[2].y = rectSubTitle.bottom;
        Point[3].x = rectSubTitle.left;
        Point[3].y = rectSubTitle.bottom;
        Point[4].x = rectSubTitle.left;
        Point[4].y = rectSubTitle.top;

        pDC->Polyline(Point, 5);

        pDC->SelectObject(pOldPen);
    }
    pDC->SelectObject(pOldFont);



    // 顯示X/Y軸
    rectFrame.left  = sizeYTitle.cy + 8 + sizeYLabel.cx;
    rectFrame.right = rectClient.right - 8;
    rectFrame.top   = rectSubTitle.bottom + 2;
    rectFrame.bottom = rectClient.bottom - sizeXTitle.cy - sizeXLabel.cy - 10;

    penFrame.CreatePen(PS_SOLID, 1, RGB(0,0,0));
    pOldPen = pDC->SelectObject(&penFrame);

    {
        POINT   Point[5];
        Point[0].x = rectFrame.left;
        Point[0].y = rectFrame.top;
        Point[1].x = rectFrame.right;
        Point[1].y = rectFrame.top;
        Point[2].x = rectFrame.right;
        Point[2].y = rectFrame.bottom;
        Point[3].x = rectFrame.left;
        Point[3].y = rectFrame.bottom;
        Point[4].x = rectFrame.left;
        Point[4].y = rectFrame.top;

        pDC->Polyline(Point, 5);
    }

    // X軸線
    m_AxresInfor[0].Ratio = (double)m_AxresInfor[0].Layers * m_AxresInfor[0].UnitValue * 1.0 / rectFrame.Width();
    // 使用字體XLabel
    pOldFont = pDC->SelectObject(&fontAxresLabel[0]);

    for(i=0; i<=m_AxresInfor[0].Layers; ++i)
    {
        // label and line
        pDC->MoveTo(rectFrame.left + i * m_AxresInfor[0].UnitValue / m_AxresInfor[0].Ratio, rectFrame.bottom + 4);
        pDC->LineTo(rectFrame.left + i * m_AxresInfor[0].UnitValue / m_AxresInfor[0].Ratio, rectFrame.bottom - 4);

        pDC->MoveTo(rectFrame.left + i * m_AxresInfor[0].UnitValue / m_AxresInfor[0].Ratio, rectFrame.top + 4);
        pDC->LineTo(rectFrame.left + i * m_AxresInfor[0].UnitValue / m_AxresInfor[0].Ratio, rectFrame.top);

        // label 
        CString     strLabel;
        strLabel.Format("%d", (int)((m_AxresInfor[0].BaseValue + i * m_AxresInfor[0].UnitValue) / (m_AxresInfor[0].Transformer)));

        CSize       sizeTemp;
        sizeTemp = pDC->GetOutputTextExtent(strLabel);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产美女精品在线| 韩国一区二区在线观看| 26uuu另类欧美| 精品免费视频一区二区| 日韩一区二区不卡| 精品福利一区二区三区免费视频| 欧美精品久久久久久久久老牛影院| 99精品欧美一区二区三区小说| 成人黄色av电影| 成人免费不卡视频| www.日本不卡| 色婷婷久久久综合中文字幕| 日本高清无吗v一区| 欧洲精品中文字幕| 欧美日韩dvd在线观看| 制服.丝袜.亚洲.中文.综合| 日韩精品一区二区在线观看| 欧美成人精品1314www| 久久久久久久久久久久久女国产乱| 久久综合给合久久狠狠狠97色69| 国产日韩精品一区二区三区| 亚洲日本在线看| 亚洲国产精品麻豆| 麻豆精品国产91久久久久久| 国产风韵犹存在线视精品| www.激情成人| 欧美精品欧美精品系列| 日本一区二区三区dvd视频在线| ...中文天堂在线一区| 亚洲一区二区三区美女| 国模大尺度一区二区三区| 99re视频精品| 91.com视频| 国产精品二三区| 午夜久久久久久久久| 国产一区免费电影| 色婷婷av一区二区三区软件 | 国产精品女主播av| 一区二区三区不卡视频| 精品一区二区三区免费| 国产一区二区视频在线| 欧美午夜精品一区二区蜜桃| 久久先锋资源网| 天天影视涩香欲综合网| 成人av网在线| 欧美成人乱码一区二区三区| 一区二区三区欧美视频| 国产一区二区福利视频| 欧美人妇做爰xxxⅹ性高电影| 久久亚洲一区二区三区四区| 亚洲国产裸拍裸体视频在线观看乱了 | 日本vs亚洲vs韩国一区三区二区 | 国产激情视频一区二区三区欧美| 在线观看精品一区| 国产精品青草久久| 精品在线免费视频| 91精品国产综合久久久蜜臀粉嫩| 成人免费一区二区三区视频 | 欧美日韩国产综合一区二区三区| 一区二区在线观看免费| 精品午夜久久福利影院| 欧美一区二区在线不卡| 亚洲免费av观看| 成人综合日日夜夜| 久久九九影视网| 国产乱码精品一区二区三区av | 18欧美亚洲精品| 国产寡妇亲子伦一区二区| 日韩免费高清电影| 麻豆成人免费电影| 欧美一区二区三区的| 亚洲成在人线免费| 欧美日韩视频一区二区| 亚洲午夜视频在线| 精品婷婷伊人一区三区三| 亚洲高清久久久| 欧美精品日日鲁夜夜添| 日本在线不卡视频一二三区| 欧美日韩大陆在线| 男人的天堂久久精品| 欧美tickle裸体挠脚心vk| 看国产成人h片视频| 欧美成人bangbros| 国产福利一区二区三区| 国产精品久久久久精k8| 91美女在线看| 午夜电影久久久| 日韩欧美国产一区二区三区 | av成人老司机| **欧美大码日韩| 欧美视频精品在线观看| 蜜臀av性久久久久av蜜臀妖精| 日韩西西人体444www| 国产成人在线视频网址| 国产精品久久久久久久久图文区 | 麻豆91精品视频| 久久亚洲二区三区| 91一区二区三区在线播放| 午夜视频在线观看一区二区| 精品国产一区二区三区av性色| 国产高清精品久久久久| 一区二区三区在线视频观看| 精品视频一区三区九区| 久久99最新地址| 亚洲女与黑人做爰| 日韩午夜在线播放| 99精品热视频| 秋霞午夜鲁丝一区二区老狼| 国产欧美日韩视频一区二区 | 日韩三级电影网址| 国产成人免费9x9x人网站视频| 一区二区成人在线| 久久综合给合久久狠狠狠97色69| av高清久久久| 蜜桃久久精品一区二区| 亚洲欧美视频一区| 欧美v日韩v国产v| 波多野结衣亚洲| 裸体歌舞表演一区二区| 亚洲精品第一国产综合野| 欧美大白屁股肥臀xxxxxx| 91在线国产观看| 国产乱人伦偷精品视频免下载 | 国产精品一区二区久久不卡| 亚洲精品自拍动漫在线| 久久综合九色综合97_久久久| 欧美色综合网站| 99精品国产热久久91蜜凸| 韩国中文字幕2020精品| 五月婷婷综合网| 成人欧美一区二区三区| 国产欧美精品国产国产专区 | 亚洲欧美自拍偷拍色图| 欧美日韩亚洲综合一区二区三区| 国产一区二区三区精品视频| 午夜精品福利一区二区蜜股av| 亚洲久草在线视频| 国产精品色在线观看| 久久嫩草精品久久久久| 日韩欧美一区二区免费| 制服.丝袜.亚洲.另类.中文| 欧美日韩一区二区三区四区五区 | 国产毛片精品视频| 日本中文字幕一区二区视频| 亚洲最色的网站| 亚洲人成精品久久久久久| 中文字幕免费不卡在线| 国产午夜精品一区二区三区视频 | 久久精品二区亚洲w码| 午夜激情久久久| 日本亚洲电影天堂| 免费成人在线观看| 免费观看久久久4p| 免费的成人av| 国产毛片一区二区| 国产高清久久久| 不卡av电影在线播放| 不卡的av电影在线观看| 91视视频在线观看入口直接观看www| 成人一区二区在线观看| 99麻豆久久久国产精品免费 | 久久久久国色av免费看影院| 精品对白一区国产伦| 久久综合色播五月| 国产免费成人在线视频| 中文字幕日本不卡| 夜夜嗨av一区二区三区| 午夜视频一区在线观看| 精东粉嫩av免费一区二区三区| 国产精品综合网| 91尤物视频在线观看| 欧美日韩一区二区三区在线| 日韩精品一区二区三区蜜臀| 久久综合九色综合久久久精品综合 | 日韩欧美www| 国产精品你懂的| 亚洲在线一区二区三区| 喷白浆一区二区| 国产91精品一区二区麻豆网站| 不卡视频一二三四| 欧美美女黄视频| 久久久三级国产网站| 国产精品白丝在线| 亚洲mv大片欧洲mv大片精品| 热久久久久久久| www.成人在线| 欧美日韩精品一区二区在线播放| 日韩一级高清毛片| 中文字幕一区av| 日韩va欧美va亚洲va久久| 国产福利91精品一区二区三区| 色哟哟一区二区三区| 日韩欧美一级特黄在线播放| 中文字幕在线观看一区二区| 午夜欧美视频在线观看| caoporen国产精品视频| 欧美成人一区二区三区| 亚洲激情自拍视频| 国产一区视频在线看| 在线免费亚洲电影|