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

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

?? polywin.cpp

?? 英文版的 想要的話可以下載了 為大家服務(wù)
?? CPP
字號:
/*
 * POLYWIN.CPP
 * Cosmo Chapter 14
 *
 * Window procedure for the polyline drawing window and support
 * functions.  This window is not complicated.  On creation it
 * allocates a block of memory for a POLYLINEDATA structure that
 * contains 20 POINTs.  We do not attempt to reallocate this
 * array at all just to maintain simplicity.
 *
 * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
 *
 * Kraig Brockschmidt, Microsoft
 * Internet  :  kraigb@microsoft.com
 * Compuserve:  >INTERNET:kraigb@microsoft.com
 */


#include "cosmo.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);
            ppl->m_hWnd=hWnd;
            ppl->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, could be 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++)
                {
                /*
                 * Not using POINTTOPOINTS since it unfortunately
                 * returns a LONG which doesn't equate to a POINTS.
                 */
                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);
        }

    //Note:  m_pl.rgpt is unmodified in this code.

    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
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人一区二区精品非洲| 91精品免费观看| 欧美日韩二区三区| 久久久www成人免费毛片麻豆| 亚洲网友自拍偷拍| 国产91精品露脸国语对白| 在线播放一区二区三区| 国产精品午夜免费| 精品一区二区三区欧美| 欧美视频一区二区在线观看| 国产精品久久国产精麻豆99网站| 秋霞电影一区二区| 欧美亚洲动漫精品| 18欧美亚洲精品| 国产成人午夜高潮毛片| 精品国产91乱码一区二区三区| 一区二区三区精品久久久| 成人免费视频视频在线观看免费 | 亚洲高清在线视频| 不卡影院免费观看| 日本一区二区三区国色天香 | 亚洲欧美视频在线观看视频| 激情文学综合丁香| 久久夜色精品一区| 精品中文av资源站在线观看| 日韩午夜在线观看视频| 午夜精品久久久久久久| 在线综合亚洲欧美在线视频| 亚洲成国产人片在线观看| 91麻豆swag| 亚洲欧美一区二区不卡| 色综合欧美在线视频区| 亚洲黄色av一区| 欧洲日韩一区二区三区| 亚洲一区二区三区不卡国产欧美| 91久久精品午夜一区二区| 亚洲女女做受ⅹxx高潮| 欧美在线免费播放| 天天影视色香欲综合网老头| 9191久久久久久久久久久| 亚洲v精品v日韩v欧美v专区| 91精品国产综合久久久久久久| 午夜私人影院久久久久| 日韩三级视频在线看| 精品一区二区三区影院在线午夜 | 国产欧美精品在线观看| 丰满少妇在线播放bd日韩电影| 国产精品剧情在线亚洲| 91麻豆国产自产在线观看| 亚洲成人免费看| 精品国产露脸精彩对白| 国产成人福利片| 一区二区三区四区视频精品免费 | 美女免费视频一区二区| 精品sm捆绑视频| 成人午夜短视频| 一区二区三区四区国产精品| 欧美美女喷水视频| 国产成人亚洲综合色影视| 亚洲人妖av一区二区| 欧美日本在线一区| 狠狠色丁香久久婷婷综| 中文字幕 久热精品 视频在线| 色屁屁一区二区| 毛片av中文字幕一区二区| 日本一区二区三区电影| 欧美日韩dvd在线观看| 国产精品一级在线| 一区二区三区四区高清精品免费观看 | 欧美三级中文字| 久久99精品久久久久婷婷| 专区另类欧美日韩| 欧美大片一区二区| 在线精品观看国产| 国产一区二区不卡老阿姨| 亚洲综合色在线| 久久久精品综合| 正在播放一区二区| 在线观看日韩av先锋影音电影院| 日韩精品一级中文字幕精品视频免费观看 | 成人免费电影视频| 免费看欧美女人艹b| 亚洲天天做日日做天天谢日日欢 | 亚洲男女一区二区三区| 精品国产乱码久久久久久图片 | 欧美成人一区二区三区片免费 | 精品国产一区二区国模嫣然| 欧美日韩一区在线| 91一区一区三区| 国产91精品精华液一区二区三区| 全部av―极品视觉盛宴亚洲| 一区二区免费视频| 亚洲欧美激情插| 欧美日韩在线三区| 亚洲婷婷在线视频| 国产精品久久久久9999吃药| 2欧美一区二区三区在线观看视频| 欧美写真视频网站| 一本大道久久a久久综合| 成人精品国产福利| 国产宾馆实践打屁股91| 青青国产91久久久久久| 一区二区三区不卡视频在线观看| 精品日韩一区二区| 成人综合婷婷国产精品久久蜜臀| 亚洲一区二区三区四区在线观看 | 男女性色大片免费观看一区二区| 国产精品免费人成网站| 日韩一级片网址| 色哟哟国产精品| 91麻豆蜜桃一区二区三区| 国产精品一区二区x88av| 美女脱光内衣内裤视频久久影院| 一区二区欧美国产| 亚洲三级电影网站| 久久久夜色精品亚洲| 久久久久亚洲综合| 日韩三级视频在线观看| 欧美吻胸吃奶大尺度电影| 91福利区一区二区三区| 99精品视频在线免费观看| 韩国三级中文字幕hd久久精品| 精品一区二区日韩| 久久爱www久久做| 蜜臀久久久久久久| 欧美aaaaaa午夜精品| 肉肉av福利一精品导航| 国产一区视频导航| 国产高清精品在线| 成人午夜激情片| 99热这里都是精品| 色综合中文字幕| 91小视频免费观看| 99久久婷婷国产综合精品| av不卡免费在线观看| 97se亚洲国产综合自在线 | 午夜久久久久久电影| 亚洲高清在线视频| 日本网站在线观看一区二区三区| 中文字幕中文字幕在线一区 | 免费在线观看视频一区| 久久99国产精品麻豆| 国产福利91精品一区| 成人午夜视频在线| 一本一道久久a久久精品| 欧美日韩一卡二卡三卡 | 自拍偷在线精品自拍偷无码专区 | 精品在线一区二区| 国产91对白在线观看九色| 不卡的看片网站| 99国产精品久久久久久久久久久| 欧美军同video69gay| 精品蜜桃在线看| 国产精品卡一卡二卡三| 亚洲一区自拍偷拍| 激情国产一区二区| 色94色欧美sute亚洲线路一ni | 国产色爱av资源综合区| 亚洲免费在线电影| 久久成人久久爱| 9久草视频在线视频精品| 欧美午夜免费电影| 久久综合久色欧美综合狠狠| 国产精品不卡视频| 精品综合久久久久久8888| 91一区在线观看| 日韩精品专区在线| 亚洲欧洲精品一区二区精品久久久 | 波多野结衣一区二区三区| 欧洲亚洲国产日韩| 久久精品男人的天堂| 亚洲精选一二三| 精品综合久久久久久8888| 色综合久久久网| 久久综合色8888| 亚洲a一区二区| jlzzjlzz亚洲女人18| 欧美一区日韩一区| 国产精品高清亚洲| 加勒比av一区二区| 99vv1com这只有精品| 欧美成人精品高清在线播放| **性色生活片久久毛片| 国产一区在线不卡| 91精品国产一区二区三区香蕉| 亚洲毛片av在线| 粉嫩一区二区三区性色av| 日韩欧美高清一区| 亚洲成人av一区二区三区| 99视频精品免费视频| 亚洲欧洲日韩综合一区二区| 国内成+人亚洲+欧美+综合在线| 在线免费亚洲电影| 中文字幕在线观看一区二区| 激情图片小说一区| 欧美精品一区二区久久婷婷| 天堂av在线一区| 欧美三电影在线| 亚洲一二三四区不卡| 色综合中文字幕|