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

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

?? polyline.c

?? 英文版的 想要的話可以下載了 為大家服務
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
 * POLYLINE.C
 *
 * 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 POLYLINE structure that contains 20 POINTs.  We do not
 * attempt to reallocate this array at all just to maintain simplicity.
 * This sample is to demonstrate OLE, not LocalReAlloc.
 *
 * Copyright(c) Microsoft Corp. 1992-1994 All Rights Reserved
 * Win32 version, January 1994
 */


#include <windows.h>
#include "cosmo.h"

/*
 * HACK:  To fix some Invalid hDC rips, we need to supress certain
 * operations on metafile DC's: GetMapMode, DPtoLP, LPtoDP.
 * We use this flag to indicate supression.
 */
BOOL fMetaDC=FALSE;



/*
 * HPolylineWindowCreate
 *
 * Purpose:
 *  Creates a Polyline window within the client area of hWndParent.
 *
 * Parameters:
 *  hWndParent      HWND of the parent window.
 *  hInstance       HINSTANCE of the application instance.
 *
 * Return Value:
 *  HWND            Result of the CreateWindowEx call.
 *
 */

HWND WINAPI HPolylineWindowCreate(HWND hWndParent, HINSTANCE hInstance)
    {
    RECT        rc;
    HWND        hWndT;

    /*
     * Create the secondary window for this application in a
     * shrunk client area.
     */
    GetClientRect(hWndParent, &rc);
    InflateRect(&rc, -8, -8);

    //Create the editor window.
    hWndT=CreateWindowEx(WS_EX_NOPARENTNOTIFY, rgpsz[IDS_CLASSPOLYLINE]
        , rgpsz[IDS_CLASSPOLYLINE], WS_CHILD | WS_VISIBLE, rc.left
        , rc.top, rc.right-rc.left, rc.bottom-rc.top
        , hWndParent, (HMENU)ID_POLYLINE, hInstance, NULL);

    return hWndT;
    }





/*
 * PolylineWndProc
 *
 * Purpose:
 *  Window procedure for the polyline drawing window.
 *
 * Parameters:
 *  The standard.
 *
 * Return Value:
 *  Standard.
 */

LRESULT WINAPI PolylineWndProc(HWND hWnd, UINT iMsg
    , WPARAM wParam, LPARAM lParam)
    {
    PAINTSTRUCT     ps;
    HDC             hDC;
    HWND            hWndParent;
    HLOCAL          hMem;
    LPPOLYLINE      ppl;
    RECT            rc;
    DWORD           dwRet=0L;

   #ifdef WIN32
    ppl=(LPPOLYLINE)(PSTR)GetWindowLong(hWnd, 0);
   #else
    ppl=(LPPOLYLINE)(PSTR)GetWindowWord(hWnd, 0);
   #endif

    if (WM_USER <= iMsg)
        return LPolylineUserMessage(hWnd, iMsg, wParam, lParam, ppl);


    switch (iMsg)
        {

        case WM_NCCREATE:
            hMem=LocalAlloc(LPTR, CBPOLYLINE);

            if (NULL==hMem)
                return 0L;

           #ifdef WIN32
            SetWindowLong(hWnd, 0, (LONG)hMem);
           #else
            SetWindowWord(hWnd, 0, (WORD)hMem);
           #endif
            return DefWindowProc(hWnd, iMsg, wParam, lParam);


        case WM_NCDESTROY:
           #ifdef WIN32
            hMem=(HLOCAL)GetWindowLong(hWnd, 0);
           #else
            hMem=(HLOCAL)GetWindowWord(hWnd, 0);
           #endif
            LocalFree(hMem);
            return DefWindowProc(hWnd, iMsg, wParam, lParam);


        case WM_CREATE:
            //Stash away the current window rectangle.
            GetClientRect(hWnd, &rc);
            RECTTORECTS(rc, ppl->rc);

            ppl->wVerMaj=VERSIONMAJOR;
            ppl->wVerMin=VERSIONMINOR;
            ppl->cPoints=0;
            break;


        case WM_PAINT:
            hDC=BeginPaint(hWnd, &ps);

            if (0!=ppl->cPoints)
                {
                ppl->fDrawEntire=TRUE;
                PolylineDraw(hWnd, hDC, ppl);
                }

            EndPaint(hWnd, &ps);
            break;

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

            //Stuff the new point in the array.
            ppl->rgpt[ppl->cPoints].x=LOWORD(lParam);
            ppl->rgpt[ppl->cPoints].y=HIWORD(lParam);

            ppl->cPoints++;

            //Draw the lines to this new point only.
            hDC=GetDC(hWnd);

            ppl->fDrawEntire=FALSE;
            PolylineDraw(hWnd, hDC, ppl);

            ReleaseDC(hWnd, hDC);

            hWndParent=GetParent(hWnd);

           #ifdef WIN32
            SendMessage(hWndParent, WM_COMMAND
                , MAKELONG(ID_POLYLINE, PLN_POINTCHANGE), (LPARAM)hWnd);
           #else
            SendMessage(hWndParent, WM_COMMAND
                , ID_POLYLINE, MAKELONG(hWnd, PLN_POINTCHANGE));
           #endif
            break;


        default:
            dwRet=DefWindowProc(hWnd, iMsg, wParam, lParam);
            break;
        }

    return dwRet;
    }







/*
 * LPolylineUserMessage
 *
 * Purpose:
 *  Handles all window-specific messages WM_USER and greater,
 *  for the Polyline window:
 *
 *  PLM_RECTSET:        Changes the size of the window and scales the
 *                      data points.
 *
 *  PLM_POLYLINESET:    Sets the current data points and the rectangle
 *                      used to generate the figure.
 *
 *  PLM_POLYLINEGET:    Retrieves the current data points and rectangle
 *                      used to generate the figure.
 *
 *  PLM_POLYLINENEW:    Resets the data points to defaults, meaning
 *                      a blank figure.
 *
 *  PLM_BACKUPUNDO:     Backs the figure up one point.
 *
 *  PLM_BITMAPGET:      Retrieves a bitmap (DDB) of the current image.
 *
 *  PLM_METAFILEGET:    Retrieves a metafile for the current image.
 *
 *  PLM_METAFILEPICTGET:Retrieves a METAFILEPICT structure of the image for
 *                      use in clipboard I/O.
 *
 * Parameters:
 *  hWnd            HWND of the Polyline window.
 *  iMsg            UINT message to process.
 *  wParam          WPARAM parameter of the message.
 *  lParam          LPARAM pameter of the message.
 *  ppl             LPPOLYLINE to the window's extra data structure.
 *
 * Return Value:
 *  DWORD           Value to return from the window procedure
 *                  that recieved the message.
 */

DWORD PASCAL LPolylineUserMessage(HWND hWnd, UINT iMsg, WPARAM wParam
    , LPARAM lParam, LPPOLYLINE ppl)
    {
    DWORD           dwRet=0L;
    HWND            hWndParent;
    HBITMAP         hBmp, hBmpT;
    HDC             hDC, hMemDC;
    LPPOLYLINE      pplT;
    LPMETAFILEPICT  pMF;
    HGLOBAL         hMem;
    HMETAFILE       hMF;
    RECT            rc;
    LPRECT          pRect;
    UINT            i;
    LONG            l, cx, cy, cxT, cyT;

    hWndParent=GetParent(hWnd);

    switch (iMsg)
        {
        case PLM_RECTSET:
            /*
             * Resize the window to the given size, letting WM_SIZE handlers
             * take care of the rest.
             */
            pRect=(LPRECT)lParam;

            /*
             * Scale all the current points to new dimensions.  ppl->rc
             * has the old dimensions, pRect points to the new.  We
             * force each of cx and cy to 1 if they are zero to prevent
             * exceptions.
             */

            RECTSTORECT(ppl->rc, rc);
            cxT=rc.right  - rc.left;
            cyT=rc.bottom - rc.top;

            RECTTORECTS(ppl->rc, *pRect);
            cx=pRect->right  - pRect->left;
            cy=pRect->bottom - pRect->top;

            //Prevent crashes
            if (0L==cxT)
                cxT=1;

            if (0L==cyT)
                cyT=1;

            //Loop through each point, scaling if necessary.
            for (i=0; i< ppl->cPoints; i++)
                {
                //Must use DWORD to insure proper scaling.
                if (cx!=cxT)
                    {
                    l=((LONG)ppl->rgpt[i].x*cx);
                    ppl->rgpt[i].x=(short)(l/cxT);
                    }

                if (cy!=cyT)
                    {
                    l=((LONG)ppl->rgpt[i].y*cy);
                    ppl->rgpt[i].y=(short)(l/cyT);
                    }
                }


            SetWindowPos(hWnd, NULL, pRect->left, pRect->top, (int)cx
                , (int)cy, SWP_NOMOVE | SWP_NOZORDER);


            //Check if we need to notify the parent.
            if (0!=wParam)
                {
               #ifdef WIN32
                SendMessage(hWndParent, WM_COMMAND
                    , MAKELONG(ID_POLYLINE, PLN_SIZECHANGE), (LPARAM)hWnd);
               #else
                SendMessage(hWndParent, WM_COMMAND
                    , ID_POLYLINE, MAKELONG(hWnd, PLN_SIZECHANGE));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区视频网站| 精品在线一区二区| 欧美伦理影视网| 老色鬼精品视频在线观看播放| 91理论电影在线观看| 亚洲午夜久久久久久久久久久 | 日韩欧美视频一区| 国产激情视频一区二区三区欧美| 国产精品福利一区二区三区| 成人免费看视频| 视频一区二区欧美| 欧美激情一区三区| 91小视频在线观看| 亚洲午夜久久久久中文字幕久| 久久综合av免费| 欧美性生交片4| 国产91富婆露脸刺激对白| 亚洲一区二区视频在线| 国产欧美中文在线| 欧美一区二区三区在线电影| 91蜜桃免费观看视频| 久久超碰97人人做人人爱| 亚洲蜜桃精久久久久久久| 在线播放/欧美激情| 不卡电影免费在线播放一区| 亚洲一区二区三区激情| 日本一区二区视频在线| 在线综合视频播放| 91麻豆蜜桃一区二区三区| 韩国v欧美v亚洲v日本v| 亚洲国产一区二区三区青草影视 | 久久久亚洲精品一区二区三区| 在线影院国内精品| 国产成人小视频| 青青草国产成人av片免费| 亚洲精品视频观看| 国产精品欧美精品| 久久久精品国产免大香伊| 91精品国产色综合久久不卡电影| 国产乱码一区二区三区| 三级在线观看一区二区| 中文字幕二三区不卡| 欧美电视剧免费全集观看| 欧美怡红院视频| 91在线视频免费91| 不卡一卡二卡三乱码免费网站| 国产麻豆成人传媒免费观看| 老司机免费视频一区二区三区| 性感美女久久精品| 午夜欧美电影在线观看| 亚洲综合在线视频| 国产精品成人在线观看| 久久免费看少妇高潮| 精品欧美一区二区久久| 日韩精品一区二区三区四区视频 | 欧美日韩亚洲高清一区二区| 色呦呦国产精品| av一区二区久久| 国产精品亚洲第一区在线暖暖韩国| 免费成人美女在线观看| 一区二区国产盗摄色噜噜| 亚洲黄色av一区| 亚洲综合男人的天堂| 亚洲综合激情另类小说区| 樱花影视一区二区| 亚洲综合在线第一页| 亚洲免费毛片网站| 亚洲精品久久7777| 一区二区三区国产精品| 亚洲国产精品麻豆| 日韩国产一二三区| 精品制服美女久久| 国产 日韩 欧美大片| 9色porny自拍视频一区二区| 97se亚洲国产综合在线| 日本福利一区二区| 91福利资源站| 91黄视频在线| 欧美疯狂性受xxxxx喷水图片| 日韩一区二区三区三四区视频在线观看 | 床上的激情91.| 成人av在线一区二区| 色综合久久天天| 欧美视频一区二区| 精品久久免费看| 国产精品亲子伦对白| 一区二区久久久久久| 日韩和欧美一区二区| 国产精品资源在线| 99国产麻豆精品| 欧美日韩的一区二区| 欧美tk丨vk视频| 国产精品色呦呦| 亚洲精品高清在线| 麻豆国产精品官网| 韩国av一区二区三区四区| 国产夫妻精品视频| 成人ar影院免费观看视频| 欧美色精品在线视频| 久久夜色精品一区| 亚洲精品五月天| 韩国女主播成人在线观看| 91网页版在线| 精品裸体舞一区二区三区| 亚洲欧美在线另类| 麻豆成人免费电影| 91免费精品国自产拍在线不卡| 欧美一卡在线观看| 国产精品美女久久久久久久| 国产精品久久看| 亚洲成人自拍偷拍| 国产成人亚洲综合a∨婷婷| 欧美日韩免费观看一区二区三区| 欧美成人激情免费网| 亚洲精品成人在线| 国产一区二区在线看| 欧美揉bbbbb揉bbbbb| 中文字幕乱码日本亚洲一区二区| 日韩黄色小视频| 色婷婷综合久久久| 日韩欧美精品在线| 国产精品污网站| 亚洲国产精品一区二区久久恐怖片 | 久久99最新地址| thepron国产精品| 欧美成人bangbros| 亚洲伊人色欲综合网| 成人国产视频在线观看| 26uuu久久综合| 日韩av电影免费观看高清完整版在线观看| 成人午夜av电影| 欧美三级日韩三级| 中文字幕欧美三区| 国产在线精品一区二区三区不卡 | 国产女同性恋一区二区| 蜜桃久久久久久久| 色女孩综合影院| 国产精品毛片高清在线完整版| 免费黄网站欧美| 91精品国产综合久久久蜜臀粉嫩| 亚洲女人小视频在线观看| 白白色亚洲国产精品| 国产日韩成人精品| 精品一区二区三区在线播放视频 | 国产成人福利片| 2021中文字幕一区亚洲| 蜜臀久久99精品久久久久久9 | 欧美一区二区三区四区高清| 视频一区欧美日韩| 日韩视频中午一区| 久久 天天综合| 中文字幕免费不卡在线| 99国产精品国产精品久久| 亚洲激情校园春色| 欧美日韩和欧美的一区二区| 日韩电影在线免费看| 精品久久久久久久久久久久久久久久久| 男人的j进女人的j一区| 久久久精品tv| 色成人在线视频| 日韩av高清在线观看| 国产亚洲制服色| 色噜噜狠狠成人中文综合| 一区二区三区免费| 91精品国产综合久久蜜臀| 国产在线视频一区二区三区| 国产欧美日韩不卡| 欧美性大战xxxxx久久久| 麻豆国产一区二区| 国产精品入口麻豆九色| 91福利精品第一导航| 狂野欧美性猛交blacked| 中文字幕日本不卡| 91精品婷婷国产综合久久竹菊| 免费高清视频精品| 国产精品丝袜一区| 欧美精品久久久久久久久老牛影院 | 亚洲成人精品一区二区| 日韩一区二区三区av| 成人综合在线视频| 日韩成人一级片| 中文字幕av一区二区三区免费看| 色噜噜狠狠一区二区三区果冻| 麻豆91在线播放| 一区二区三区中文字幕在线观看| 精品久久久久久久久久久久包黑料 | 亚洲最新视频在线观看| 精品福利一区二区三区| 91亚洲资源网| 成人涩涩免费视频| 日韩av一区二区三区| 亚洲精品免费在线观看| 久久久精品综合| 欧美精品久久99久久在免费线| 粉嫩高潮美女一区二区三区| 日韩经典一区二区| 亚洲视频在线观看一区| 欧美videossexotv100| 欧美天堂一区二区三区| 99精品欧美一区二区三区小说 |