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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? polywin.cpp

?? 英文版的 想要的話可以下載了 為大家服務(wù)
?? CPP
字號(hào):
/*
 * POLYWIN.CPP
 * Polyline Component Chapter 8
 *
 * Window procedure for the polyline drawing window and support
 * functions.
 *
 * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
 *
 * Kraig Brockschmidt, Microsoft
 * Internet  :  kraigb@microsoft.com
 * Compuserve:  >INTERNET:kraigb@microsoft.com
 */


#include "polyline.h"


/*
 * PolylineWndProc
 *
 * Purpose:
 *  Window procedure for the polyline drawing window.
 */

LRESULT APIENTRY PolylineWndProc(HWND hWnd, UINT iMsg
    , WPARAM wParam, LPARAM lParam)
    {
    PCPolyline      ppl;
    PAINTSTRUCT     ps;
    HDC             hDC;
    POINTS          pt;
    RECT            rc;

    ppl=(PCPolyline)GetWindowLong(hWnd, PLWL_STRUCTURE);

    switch (iMsg)
        {
        case WM_CREATE:
            ppl=(PCPolyline)((LPCREATESTRUCT)lParam)->lpCreateParams;
            SetWindowLong(hWnd, PLWL_STRUCTURE, (LONG)ppl);

            //New repaints this window, so store the hWnd here.
            ppl->m_hWnd=hWnd;
            ppl->m_pImpIPolyline->New();
            break;


        case WM_PAINT:
            hDC=BeginPaint(hWnd, &ps);
            ppl->Draw(hDC, FALSE, TRUE);
            EndPaint(hWnd, &ps);
            break;


        case WM_LBUTTONDOWN:
            //Stop if we are already at the limit.
            if (CPOLYLINEPOINTS==ppl->m_pl.cPoints)
                {
                MessageBeep(0);
                break;
                }

            //Convert the points into 0-32767 range
            GetClientRect(hWnd, &rc);
            pt=MAKEPOINTS(lParam);
            ppl->PointScale(&rc, &pt, FALSE);

            ppl->m_pl.rgpt[ppl->m_pl.cPoints++]=pt;

            //Draw the lines to this new point only.
            hDC=GetDC(hWnd);
            ppl->Draw(hDC, FALSE, FALSE);
            ReleaseDC(hWnd, hDC);

            if (NULL!=ppl->m_pAdv)
                ppl->m_pAdv->OnPointChange();

            break;


        default:
            return DefWindowProc(hWnd, iMsg, wParam, lParam);
        }

    return 0L;
    }







/*
 * CPolyline::Draw
 *
 * Purpose:
 *  Paints the current line in the polyline window.
 *
 * Parameters:
 *  hDC             HDC to draw on, a metafile or printer DC.
 *  fMetafile       BOOL indicating if hDC is a metafile or not,
 *                  so we can avoid operations that RIP.
 *  fEntire         BOOL indicating if we should draw the entire
 *                  figure or not.
 *
 * Return Value:
 *  None
 */

void CPolyline::Draw(HDC hDC, BOOL fMetafile, BOOL fEntire)
    {
    HBRUSH          hBrush;
    HPEN            hPen;
    HGDIOBJ         hObj1, hObj2;
    UINT            i, j;
    UINT            uMM;
    POINTS          pt1, pt2;
    POINT           rgpt[CPOLYLINEPOINTS];
    RECT            rc;

    GetClientRect(m_hWnd, &rc);

    /*
     * Make a 32-bit copy of the points in the POLYLINE itself
     * so we can use DPtoLP and LPtoDP.
     */
    for (i=0; i < m_pl.cPoints; i++)
        {
        rgpt[i].x=m_pl.rgpt[i].x;
        rgpt[i].y=m_pl.rgpt[i].y;
        }

    /*
     * If the mapping mode is not MM_TEXT, convert the points to
     * whatever mapping mode in in effect before drawing.
     * This specifically supports metafiles in MM_ANISOTROPIC.
     */
    uMM=fMetafile ? MM_TEXT : GetMapMode(hDC);

    if (MM_TEXT!=uMM)
        DPtoLP(hDC, rgpt, m_pl.cPoints);

    hPen=CreatePen(m_pl.iLineStyle, 1, m_pl.rgbLine);
    hObj1=SelectObject(hDC, hPen);

    hBrush=CreateSolidBrush(m_pl.rgbBackground);
    hObj2=SelectObject(hDC, hBrush);
    SetBkColor(hDC, m_pl.rgbBackground);

    /*
     * Either draw the entire figure or just a single point.  The
     * entire figure also includes erasing the background
     * completely, since hDC may be a metafile DC.  Drawing a single
     * point just updates the figure for that new point.
     */
    if (fEntire || 0==m_pl.cPoints)
        {
        //Erase the background for bitmaps and metafiles.
        SelectObject(hDC, GetStockObject(NULL_PEN));
        Rectangle(hDC, rc.left, rc.top, rc.right+1, rc.bottom+1);
        SelectObject(hDC, hPen);


        /*
         * If we are drawing the entire figure, then loop through
         * each point drawing a line to each successive point.
         */

        for (i=0; i < m_pl.cPoints; i++)
            {
            for (j=i; j < m_pl.cPoints; j++)
                {
                pt1.x=(short)rgpt[i].x;
                pt1.y=(short)rgpt[i].y;
                pt2.x=(short)rgpt[j].x;
                pt2.y=(short)rgpt[j].y;

                PointScale(&rc, &pt1, TRUE);
                PointScale(&rc, &pt2, TRUE);
                MoveToEx(hDC, pt1.x, pt1.y, NULL);
                LineTo(hDC, pt2.x, pt2.y);
                }
            }
        }
    else
        {
        /*
         * If we are only drawing the last point, just cycle once
         * through previous points.
         */

        //Get the last point entered in the array.
        j=m_pl.cPoints-1;
        pt1.x=(short)rgpt[j].x;
        pt1.y=(short)rgpt[j].y;
        PointScale(&rc, &pt1, TRUE);

        for (i=0; i < j; i++)
            {
            pt2.x=(short)rgpt[i].x;
            pt2.y=(short)rgpt[i].y;
            PointScale(&rc, &pt2, TRUE);

            MoveToEx(hDC, pt1.x, pt1.y, NULL);
            LineTo(hDC, pt2.x, pt2.y);
            }
        }

    //If we have one point, draw a dot to indicate it's position.
    if (1==m_pl.cPoints)
        {
        pt1.x=(short)rgpt[0].x;
        pt1.y=(short)rgpt[0].y;
        PointScale(&rc, &pt1, TRUE);
        SetPixel(hDC, pt1.x, pt1.y, m_pl.rgbLine);
        }

    //Restore original points.
    if (MM_TEXT!=uMM)
        LPtoDP(hDC, rgpt, m_pl.cPoints);

    SelectObject(hDC, hObj1);
    SelectObject(hDC, hObj2);
    DeleteObject(hBrush);
    DeleteObject(hPen);
    return;
    }







/*
 * CPolyline::PointScale
 *
 * Purpose:
 *  Scales a point to or from a relative window coordinate to a
 *  0-32767 coordinate.
 *
 * Parameters:
 *  pRect           LPRECT of the window.
 *  ppt             LPPOINTS to convert
 *  fScaleToWindow  BOOL indicating direction of scaling.
 *
 * Return Value:
 *  None
 */

void CPolyline::PointScale(LPRECT pRect, LPPOINTS ppt
    , BOOL fScaleToWindow)
    {
    DWORD   cx, cy;

    //Window size
    cx=(DWORD)(pRect->right-pRect->left);
    cy=(DWORD)(pRect->bottom-pRect->top);

    //Prevent crashes
    if (0L==cx) cx=1;
    if (0L==cy) cy=1;

    //Must use DWORD to insure proper scaling.
    if (fScaleToWindow)
        {
        ppt->x=(UINT)(((DWORD)ppt->x*cx) >> 15);
        ppt->y=(UINT)(((DWORD)ppt->y*cy) >> 15);
        }
    else
        {
        ppt->x=(UINT)(((DWORD)ppt->x << 15)/cx);
        ppt->y=(UINT)(((DWORD)ppt->y << 15)/cy);
        }

    return;
    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲人成网站| 国产精品18久久久久| 精品国产成人在线影院| 91麻豆精品国产91久久久久| 欧美日韩久久不卡| 欧美日韩精品三区| 91精品国产乱| 精品91自产拍在线观看一区| 精品粉嫩aⅴ一区二区三区四区| 欧美一区二区三区在线| 欧美大胆人体bbbb| 国产女人水真多18毛片18精品视频 | 亚洲美女一区二区三区| 国产精品午夜久久| 最新日韩av在线| 亚洲免费观看高清完整版在线观看 | 亚洲无人区一区| 午夜精品免费在线| 免费观看一级欧美片| 国产一区二区久久| www.亚洲色图.com| 欧美日韩亚洲国产综合| 日韩免费电影网站| 亚洲欧洲无码一区二区三区| 最新国产精品久久精品| 天天色综合天天| 国产伦精一区二区三区| 亚洲人亚洲人成电影网站色| 欧美蜜桃一区二区三区| 日韩一级成人av| 欧美国产视频在线| 亚洲一区二区三区四区的| 免费黄网站欧美| 色综合天天做天天爱| 欧美一级在线免费| 国产精品激情偷乱一区二区∴| 亚洲摸摸操操av| 久久精品久久久精品美女| 成人免费视频视频| 69av一区二区三区| 中文字幕视频一区| 国内成+人亚洲+欧美+综合在线| 99久久99久久精品国产片果冻| 欧美久久一二区| 亚洲国产成人午夜在线一区| 天天做天天摸天天爽国产一区 | 国产 日韩 欧美大片| 欧美性色黄大片| 国产欧美日韩精品一区| 日韩国产一二三区| 欧美伊人精品成人久久综合97| 久久久一区二区三区捆绑**| 秋霞影院一区二区| 在线一区二区视频| 中文乱码免费一区二区| 久久99精品久久久久久国产越南| 91啪九色porn原创视频在线观看| 欧美不卡123| 日韩国产精品久久久| 色婷婷综合久久久| 国产精品毛片高清在线完整版| 激情亚洲综合在线| 欧美一区永久视频免费观看| 亚洲尤物视频在线| 一本久久综合亚洲鲁鲁五月天| 欧美激情综合网| 国产成人av电影在线观看| 欧美mv和日韩mv的网站| 国产在线精品视频| 日韩欧美中文一区| 三级不卡在线观看| 欧美色图在线观看| 亚洲国产视频直播| 欧美亚洲综合另类| 亚洲国产精品精华液网站| 91极品美女在线| 亚洲综合区在线| 欧美在线综合视频| 亚洲丶国产丶欧美一区二区三区| 91网上在线视频| 亚洲国产日韩av| 欧美在线free| 国产精品欧美一级免费| 美女免费视频一区| 成人国产一区二区三区精品| 九九在线精品视频| 成人av午夜电影| 日韩三级免费观看| 一区二区三区欧美日韩| 久久99国内精品| 一本色道久久综合亚洲aⅴ蜜桃| 欧美久久久久久久久久| 午夜欧美大尺度福利影院在线看| 亚洲免费观看高清| 久久久精品国产免大香伊| 久久se精品一区二区| 亚洲精品一区二区三区四区高清 | 午夜精品福利视频网站| 91精品综合久久久久久| 激情综合色综合久久综合| 精品日韩一区二区| 99国产精品99久久久久久| 亚洲黄色片在线观看| 777午夜精品视频在线播放| 久久国内精品自在自线400部| 国产欧美在线观看一区| 欧洲av一区二区嗯嗯嗯啊| 免费成人美女在线观看| 中文字幕中文字幕中文字幕亚洲无线 | 91精品久久久久久蜜臀| 国产激情一区二区三区| 亚洲国产人成综合网站| 久久久无码精品亚洲日韩按摩| 99精品一区二区三区| 免费日韩伦理电影| 亚洲欧美一区二区三区孕妇| 日韩精品一区二区三区蜜臀 | 99re免费视频精品全部| 综合中文字幕亚洲| 亚洲午夜激情av| 91在线视频在线| 美女国产一区二区| 亚洲一区在线观看免费| 精品国产乱码久久久久久久久| 97久久久精品综合88久久| 国产盗摄精品一区二区三区在线| 亚洲天堂2014| 久久久久亚洲蜜桃| 欧美久久久久久久久中文字幕| 成人av电影观看| 久久99精品国产91久久来源| 亚洲成av人片在线| 亚洲天堂a在线| 国产精品毛片久久久久久| 精品久久久久久久久久久久久久久| 一本一道久久a久久精品| 国产成人精品在线看| 久久成人18免费观看| 日韩中文欧美在线| 亚洲国产精品影院| 亚洲乱码国产乱码精品精的特点| 久久久久久电影| 精品国产污污免费网站入口 | 午夜影院久久久| 亚洲乱码国产乱码精品精小说 | 日本亚洲天堂网| 亚洲成av人片在线观看| 亚洲午夜精品网| 亚洲三级电影网站| 亚洲婷婷在线视频| 亚洲婷婷在线视频| 亚洲免费电影在线| 亚洲女同ⅹxx女同tv| 亚洲欧美色图小说| 亚洲综合小说图片| 一区二区三区欧美日韩| 亚洲电影你懂得| 日韩福利电影在线| 精品一区二区影视| 国产一区二区按摩在线观看| 国产成人午夜99999| 国产经典欧美精品| 99re这里只有精品6| 欧美三级中文字幕| 欧美精品欧美精品系列| 日韩午夜三级在线| 久久久久久影视| 欧美激情中文字幕| 亚洲最新视频在线观看| 午夜精品一区二区三区免费视频| 人禽交欧美网站| 国产激情一区二区三区四区| 91亚洲国产成人精品一区二区三 | 欧美电视剧免费全集观看| 久久影院电视剧免费观看| 国产精品丝袜黑色高跟| 一级女性全黄久久生活片免费| 日韩中文欧美在线| 国产98色在线|日韩| 欧美在线观看一区| 精品免费日韩av| 亚洲欧洲综合另类在线| 免费视频最近日韩| 99久久99久久精品免费观看| 欧美日本韩国一区二区三区视频| 91精品国产一区二区三区香蕉| 欧美精品一区在线观看| 亚洲精品国产品国语在线app| 日日夜夜精品免费视频| 国产精品1区二区.| 欧美日韩免费电影| 国产女主播一区| 爽好久久久欧美精品| 国产91精品入口| 欧美三级在线播放| 中文字幕精品一区二区精品绿巨人| 一二三四区精品视频| 成人小视频免费在线观看| 欧美一区二区成人6969| 一区二区三区四区在线播放|