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

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

?? pagemous.cpp

?? 英文版的 想要的話可以下載了 為大家服務
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
        if (x >= rcO.right-cxy)
            x=rcO.right-cxy;

        if (x <= rcB.left)           //Limit to left of page.
            x=rcB.left;

        m_rcl.left=x;
        }

    if (m_uSizingFlags & SIZINGRIGHT)
        {
        if (x <= rcO.left+cxy)
            x=rcO.left+cxy;

        if (x >= rcB.right)          //Limit to right of page.
            x=rcB.right;

        m_rcl.right=x;
        }


    //Draw the new
    RECTFROMRECTL(rc, m_rcl)
    DrawFocusRect(m_hDC, &rc);

    return;
    }




/*
 * CPage::OnTimer
 *
 * Purpose:
 *  Processes WM_TIMER messages to a page used to perform mouse
 *  debouncing.
 *
 * Parameters:
 *  uID             UINT timer ID.
 *
 * Return Value:
 *  None
 */

void CPage::OnTimer(UINT uID)
    {
    if (m_fSizePending || m_fDragPending)
        {
        BOOL        fSize=m_fSizePending;
        BOOL        fDrag=m_fDragPending;

        /*
         * Having this function called means the delay requirement
         * is satisfied.  Start tracking for sizing or dragging.
         */

        m_fSizePending=FALSE;
        m_fDragPending=FALSE;

        KillTimer(m_hWnd, IDTIMER_DEBOUNCE);
        m_fTimer=FALSE;

        if (fDrag)
            {
            POINT       pt;

            GetCursorPos(&pt);
            m_pPG->m_fDirty |= DragDrop(m_uKeysDown
                , m_ptDown.x, m_ptDown.y);
            return;
            }

        if (fSize)
            StartSizeTracking();
        }

    return;
    }





/*
 * CPage::StartSizeTracking
 *
 * Purpose:
 *  Begins sizing of a tenant when mouse debounce conditions are
 *  met.
 *
 * Parameters:
 *  uID             UINT timer ID.
 *
 * Return Value:
 *  None
 */

void CPage::StartSizeTracking(void)
    {
    RECT        rc;

    m_pTenantCur->RectGet(&m_rcl, TRUE);
    SetCapture(m_hWnd);
    m_fTracking=TRUE;

    m_hDC=GetDC(m_hWnd);

    //Place the rectangle exactly where it is on the screen.
    RECTFROMRECTL(rc, m_rcl)
    OffsetRect(&rc, -(int)m_pPG->m_xPos, -(int)m_pPG->m_yPos);
    RECTLFROMRECT(m_rcl, rc);
    m_rclOrg=m_rcl;

    DrawFocusRect(m_hDC, &rc);

    m_pPG->CalcBoundingRect(&rc, TRUE);
    RECTLFROMRECT(m_rclBounds, rc);
    return;
    }





/*
 * CPage::OnNCHitTest
 *
 * Purpose:
 *  Processes WM_NCHITTEST on a page so we can check for hits on the
 *  handles of the selected object for resizing.  We only save
 *  information for ourselves and do not interfere with normal
 *  hit-testing.
 *
 * Parameters:
 *  x, y            UINT device coordinates to check.
 *
 * Return Value:
 *  None
 */

void CPage::OnNCHitTest(UINT x, UINT y)
    {
    RECT        rc;
    RECTL       rcl;
    int         iMid1, iMid2;
    int         xHit, yHit;
    POINT       pt;
    int         x0, y0;

    /*
     * Ignore this message if it occurs during tracking to adjust
     * for the behavior of oddball mouse drivers.
     */
    if (m_fSizePending || m_fTracking)
        return;

    //Default: don't start sizing on a click, don't hit an object.
    m_uSizingFlags=0;
    m_uHTCode=HTNOWHERE;

    if (NULL==m_pTenantCur)
        return;

    //Convert device points to our coordinates
    m_pTenantCur->RectGet(&rcl, FALSE);
    RECTFROMRECTL(rc, rcl);
    RectConvertMappings(&rc, NULL, TRUE);
    OffsetRect(&rc, -(int)m_pPG->m_xPos, -(int)m_pPG->m_yPos);

    SETPOINT(pt, x, y);
    ScreenToClient(m_hWnd, &pt);
    x0=pt.x;
    y0=pt.y;

    if (x0 < rc.left || x0 > rc.right)
        return;

    if (y0 < rc.top || y0 > rc.bottom)
        return;

    //It's at least in the object.
    m_uHTCode=HTCLIENT;

    //Check for hits in horizontal regions
    xHit=NOVALUE;
    iMid1=rc.left+((rc.right-rc.left-CXYHANDLE) >> 1);
    iMid2=rc.left+((rc.right-rc.left+CXYHANDLE) >> 1);

    if (x0 >= rc.left && x0 <= rc.left+CXYHANDLE)
        xHit=XLEFT;
    else if (x0 >= iMid1 && x0 <= iMid2)
        xHit=XMID;
    else if (x0 >= rc.right-CXYHANDLE && x0 <= rc.right)
        xHit=XRIGHT;

    //Don't exit yet if we didn't hit a handle--might hit a y edge.

    //Check for hits in vertical regions
    yHit=NOVALUE;
    iMid1=rc.top+((rc.bottom-rc.top-CXYHANDLE) >> 1);
    iMid2=rc.top+((rc.bottom-rc.top+CXYHANDLE) >> 1);

    if (y0 >= rc.top && y0 <= rc.top+CXYHANDLE)
        yHit=YTOP;
    else if (y0 >= iMid1 && y0 <= iMid2)
        yHit=YMID;
    else if (y0 >= rc.bottom-CXYHANDLE && y0 <= rc.bottom)
        yHit=YBOT;

    /*
     * If we hit any edge, but didn't hit a handle, then one of xHit
     * and yHit will be NOVALUE and the other something else.  When
     * we hit an edge on the 'something else' then we're on a drag
     * point.
     */

    if ((NOVALUE==xHit && NOVALUE==yHit)
        || (XMID==xHit && YMID==yHit)
        || (NOVALUE==xHit && YMID==yHit)
        || (XMID==xHit && NOVALUE==yHit))
        return;

    if ((NOVALUE==xHit && (YTOP==yHit || YBOT==yHit))
        || ((XLEFT==xHit || XRIGHT==xHit) && NOVALUE==yHit))
        {
        m_uHTCode=HTCAPTION;
        return;
        }

    //We hit a handle, so save our HT code
    m_uSizingFlags=g_rguSizingFlags[xHit+(yHit*3)];
    m_uHTCode=g_rgHTCode[xHit+(yHit*3)];
    return;
    }





/*
 * CPage::SetCursor
 *
 * Purpose:
 *  Processes WM_SETCURSOR using the code from OnNCHitTest.
 *
 * Parameters:
 *  x, y            UINT device coordinates to check.
 *
 * Return Value:
 *  LRESULT         HT* code for Windows.
 */

BOOL CPage::OnSetCursor(UINT uHTCode)
    {
    HCURSOR     hCur;
    UINT        iCur;

    /*
     * We really just ignore uHTCode and use the one we saved
     * in OnNCHitTest.
     */

    switch (m_uHTCode)
        {
        case HTTOP:
        case HTBOTTOM:
            iCur=IDC_VARROWS;
            break;

        case HTLEFT:
        case HTRIGHT:
            iCur=IDC_HARROWS;
            break;


        case HTTOPLEFT:
        case HTBOTTOMRIGHT:
            iCur=IDC_NWSEARROWS;
            break;

        case HTTOPRIGHT:
        case HTBOTTOMLEFT:
            iCur=IDC_NESWARROWS;
            break;

        case HTCAPTION:
            iCur=IDC_SMALLARROWS;
            break;

        default:
            return FALSE;
        }

    hCur=UICursorLoad(iCur);
    SetCursor(hCur);

    return TRUE;
    }





/*
 * CPage::TenantFromPoint
 * (Protected)
 *
 * Purpose:
 *  Finds the tenant under the given device coordinates on this
 *  page.
 *
 * Parmeters:
 *  x, y            UINT coordinates.
 *  ppTenant        PCTenant * in which to return the pointer.
 *
 * Return Value:
 *  UINT            Index of the matched tenant, NOVALUE if not
 *                  found.
 */

UINT CPage::TenantFromPoint(UINT x, UINT y, PCTenant *ppTenant)
    {
    PCTenant    pTenant;
    RECTL       rcl;
    UINT        i;
    int         x0, y0;

    x0=x+m_pPG->m_xPos;
    y0=y+m_pPG->m_yPos;

    for (i=0; i < m_cTenants; i++)
        {
        if (!TenantGet(i, &pTenant, FALSE))
            continue;

        pTenant->RectGet(&rcl, TRUE);

        //Essentially Perform PointInRECTL
        if (x0 >= rcl.left && x0 <= rcl.right)
            {
            if (y0 <=rcl.bottom && y0 >=rcl.top)
                {
                *ppTenant=pTenant;
                return i;
                }
            }
        }

    *ppTenant=NULL;
    return NOVALUE;
    }







/*
 * CPage::DragDrop
 *
 * Purpose:
 *  Performs drag-drop operations from the page window
 *
 * Parmeters:
 *  uKeys           UINT state of the keyboard
 *  x, y            UINT mouse coordinates of the starting click.
 *
 * Return Value:
 *  BOOL            TRUE if we modified the page, FALSE otherwise.
 */

BOOL CPage::DragDrop(UINT uKeys, UINT x, UINT y)
    {
    LPDROPSOURCE    pIDropSource;
    LPDATAOBJECT    pIDataObject;
    HRESULT         hr;
    DWORD           dwEffect;
    POINTL          ptl;
    SIZEL           szl;
    RECTL           rcl;
    RECT            rc, rcT;

    pIDropSource=new CDropSource();

    if (NULL==pIDropSource)
        return FALSE;

    pIDropSource->AddRef();
    m_pPG->m_fDragSource=TRUE;


    /*
     * Store a pick point with the data indicating the offset from
     * the upper left of the rectangle where we grabbed it.  This is
     * so the UI feedback in IDropTarget lines up with this tenant.
     */

    m_pTenantCur->RectGet(&rcl, TRUE);
    ptl.x=x+m_pPG->m_xPos-rcl.left;
    ptl.y=y+m_pPG->m_yPos-rcl.top;
    pIDataObject=TransferObjectCreate(&ptl);

    if (NULL==pIDataObject)
        {
        pIDropSource->Release();
        return FALSE;
        }

    m_pPG->m_fMoveInPage=FALSE;

    dwEffect=DROPEFFECT_COPY | DROPEFFECT_MOVE;
    hr=DoDragDrop(pIDataObject, pIDropSource
        , DROPEFFECT_COPY | DROPEFFECT_MOVE, &dwEffect);

    pIDataObject->Release();
    pIDropSource->Release();

    m_pPG->m_fDragSource=FALSE;

    //No drop-no action.
    if (DRAGDROP_S_DROP!=GetScode(hr) || DROPEFFECT_NONE==dwEffect)
        return FALSE;

    /*
     * If m_pPG->m_fMoveInPage is set, then we just change the
     * coordinates on m_pTenantCur and we're done.
     */
    if (m_pPG->m_fMoveInPage)
        {
        m_pTenantCur->Invalidate();

        /*
         * Clip to page boundaries.  We know that ptDrop has to be
         * in the page somewhere or we would not have dropped
         * (effect was NONE).  So first make sure that ptDrop is
         * within 3*CXYHANDLE of the right or bottom, and if so,
         * pull it out to 3*CXYHANDLE.  Then we can just clip the
         * size to the page rectangle and we'll always be sure to
         * have at least a sizeable object.
         */
        m_pTenantCur->SizeGet(&szl, TRUE);
        SetRect(&rc, (int)m_pPG->m_ptDrop.x, (int)m_pPG->m_ptDrop.y
            , 0, 0);
        RectConvertMappings(&rc, NULL, TRUE);

        m_pPG->CalcBoundingRect(&rcT, FALSE);
        OffsetRect(&rcT, (int)m_pPG->m_xPos, (int)m_pPG->m_yPos);

        if (rc.left >= rcT.right-3*CXYHANDLE)
            rc.left=rcT.right-3*CXYHANDLE;

        if (rc.top >= rcT.bottom-3*CXYHANDLE)
            rc.top=rcT.bottom-3*CXYHANDLE;

        rc.right=rc.left+(int)szl.cx;
        rc.bottom=rc.top+(int)szl.cy;
        IntersectRect(&rc, &rc, &rcT);

        RECTLFROMRECT(rcl, rc);

        m_pTenantCur->RectSet(&rcl, TRUE, FALSE);
        m_pTenantCur->Repaint();
        return TRUE;
        }

    /*
     * Otherwise we may have to delete the old tenant if the effect
     * was move.  This will not happen in the move in page case.
     */

    if (DROPEFFECT_MOVE==dwEffect)
        {
        TenantDestroy();
        return TRUE;
        }

    //Copy is a clean operation
    return FALSE;
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丰满岳乱妇一区二区三区 | 亚洲日本乱码在线观看| 91电影在线观看| 麻豆久久一区二区| 亚洲日本在线天堂| 亚洲国产激情av| 日韩视频在线观看一区二区| 91丨九色丨蝌蚪富婆spa| 国产一区在线不卡| 香蕉乱码成人久久天堂爱免费| 久久久久久黄色| 91精品国产91热久久久做人人| 成人免费视频一区二区| 日韩成人午夜电影| 亚洲欧美日韩电影| 国产精品亲子伦对白| 精品国免费一区二区三区| 欧美日本在线一区| 色偷偷成人一区二区三区91 | 成人污视频在线观看| 蜜臀av一区二区在线免费观看| 亚洲三级在线免费观看| 中文一区一区三区高中清不卡| 欧美在线你懂得| 99re热这里只有精品免费视频| 美日韩一区二区| 一区二区三区四区中文字幕| 国产精品久久久久久久第一福利| 日韩精品一区二区三区三区免费| 色悠久久久久综合欧美99| 国产精品99久久久久久似苏梦涵| 首页欧美精品中文字幕| 一区二区三区欧美日| 亚洲精品成a人| 久久久99久久| 久久综合九色综合97婷婷| 欧美tk丨vk视频| 欧美一级欧美一级在线播放| 欧美性色欧美a在线播放| www.亚洲免费av| jizzjizzjizz欧美| 99精品欧美一区二区蜜桃免费| 97se亚洲国产综合自在线不卡| 不卡av免费在线观看| 99re这里只有精品首页| 色悠久久久久综合欧美99| 91福利资源站| 欧美精品1区2区3区| 欧美一级电影网站| 久久久久国产精品厨房| 亚洲国产精品二十页| 国产精品白丝在线| 国产精品色婷婷| 国产精品久久久久四虎| 国产日韩三级在线| 欧美高清在线视频| 午夜精品123| 一区二区三区成人在线视频| 亚洲福利视频导航| 视频在线观看91| 青青草成人在线观看| 狠狠色综合日日| 成人精品高清在线| 成人av在线看| 91女厕偷拍女厕偷拍高清| 在线观看视频一区二区| 日韩欧美高清dvd碟片| 中文无字幕一区二区三区| 亚洲色图都市小说| 蜜桃久久av一区| 成人app软件下载大全免费| 色婷婷av一区二区三区软件| 欧美日韩国产大片| 国产亚洲婷婷免费| 亚洲一区二区av在线| 久久国产福利国产秒拍| av在线不卡网| 日韩欧美国产麻豆| 国产精品色噜噜| 亚洲成av人片在线| 国产精品一区一区三区| 欧美亚洲综合一区| 国产欧美日韩在线看| 午夜视频一区在线观看| 国产精品一区二区黑丝| 欧美午夜理伦三级在线观看| 日韩欧美在线观看一区二区三区| 久久色成人在线| 亚洲视频一二三区| 男男成人高潮片免费网站| 粉嫩aⅴ一区二区三区四区| 色先锋资源久久综合| 欧美r级在线观看| 国产精品美女www爽爽爽| 亚洲毛片av在线| 久久99精品久久久久婷婷| 从欧美一区二区三区| 欧美狂野另类xxxxoooo| 亚洲国产岛国毛片在线| 日韩精品一二三四| 在线观看视频一区二区| 欧美国产日韩a欧美在线观看 | 国产在线看一区| 欧美日韩在线直播| 亚洲少妇30p| 国产福利精品导航| 精品少妇一区二区三区在线播放| 国产一区二区伦理片| 欧美日韩情趣电影| 亚洲精品国产品国语在线app| 国产精品456| 精品国产乱子伦一区| 午夜精品视频在线观看| 色婷婷激情综合| 亚洲欧洲成人av每日更新| 国产乱国产乱300精品| 欧美久久一二区| 亚洲欧美成aⅴ人在线观看 | 91网站黄www| 国产日韩欧美精品综合| 午夜精品aaa| 91蜜桃免费观看视频| 久久久亚洲精华液精华液精华液| 亚洲自拍偷拍图区| 不卡视频一二三四| 久久色中文字幕| 久久精品国产秦先生| 欧美一区二区三区视频免费 | 免费成人在线网站| 555www色欧美视频| 亚洲一区二区在线播放相泽| 在线视频综合导航| 国产欧美一区二区三区在线老狼| 九九热在线视频观看这里只有精品 | 日韩在线卡一卡二| 欧美久久高跟鞋激| 日本在线不卡视频| 欧美性xxxxxx少妇| 一区二区三区不卡视频| 欧亚一区二区三区| 亚洲欧美一区二区在线观看| 成人中文字幕在线| 欧美韩国日本综合| av一区二区三区在线| 久久精品视频一区二区| 美女一区二区三区| 日韩亚洲电影在线| 精品在线播放午夜| 国产精品水嫩水嫩| 在线观看免费视频综合| 亚洲成在线观看| 日韩久久免费av| 粉嫩13p一区二区三区| 综合亚洲深深色噜噜狠狠网站| 成人av电影在线网| 伊人开心综合网| 在线播放国产精品二区一二区四区 | 国精产品一区一区三区mba视频| www国产成人| 成人国产精品视频| 亚洲一区在线观看网站| 制服丝袜亚洲色图| 国产91对白在线观看九色| 亚洲精品国产一区二区精华液| 欧美老女人第四色| 韩国在线一区二区| 亚洲天堂免费在线观看视频| 色一情一乱一乱一91av| 免费成人小视频| 国产精品三级视频| 欧美日韩国产a| 粉嫩绯色av一区二区在线观看| 尤物在线观看一区| 精品国产乱码久久久久久牛牛| 成年人国产精品| 亚洲va欧美va人人爽午夜 | 日韩不卡免费视频| 国产蜜臀av在线一区二区三区| 一本一本大道香蕉久在线精品 | 日本欧美在线看| 国产精品久久久久四虎| 91精品国产乱码久久蜜臀| 成人免费高清视频在线观看| 视频精品一区二区| 国产精品高清亚洲| 日韩欧美色综合| 91亚洲国产成人精品一区二区三| 日产精品久久久久久久性色| 国产精品久久久久久亚洲毛片 | 欧美日韩国产成人在线91| 国产一区二区视频在线| 亚洲综合av网| 国产精品欧美一区喷水| 精品日韩欧美一区二区| 欧美日韩成人综合在线一区二区| 国产成a人无v码亚洲福利| 日本人妖一区二区| 亚洲一级二级在线| 中文无字幕一区二区三区 | 天天色天天爱天天射综合|