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

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

?? pagewin.cpp

?? 英文版的 想要的話可以下載了 為大家服務
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
 * PAGEWIN.CPP
 * Patron Chapter 20
 *
 * Window procedure for the Pages window and support functions.
 * This window manages its own scrollbars and viewport and provides
 * printing capabilities as well.
 *
 * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
 *
 * Kraig Brockschmidt, Microsoft
 * Internet  :  kraigb@microsoft.com
 * Compuserve:  >INTERNET:kraigb@microsoft.com
 */


#include "patron.h"


/*
 * PagesWndProc
 *
 * Purpose:
 *  Window procedure for the Pages window.
 */

LRESULT APIENTRY PagesWndProc(HWND hWnd, UINT iMsg, WPARAM wParam
    , LPARAM lParam)
    {
    PCPages         ppg;
    PAINTSTRUCT     ps;
    HDC             hDC;
    int             iPos, iTmp;
    int             iMin, iMax;
    UINT            idScroll;
    BOOL            fDirty=FALSE;

    ppg=(PCPages)GetWindowLong(hWnd, PAGEWL_STRUCTURE);

    switch (iMsg)
        {
        case WM_CREATE:
            ppg=(PCPages)((LPCREATESTRUCT)lParam)->lpCreateParams;
            SetWindowLong(hWnd, PAGEWL_STRUCTURE, (LONG)ppg);

            ppg->m_hWnd=hWnd;
            break;


        case WM_PAINT:
            /*
             * If there is currently a drag-rectangle showing, then
             * remove it before painting.  This insures that
             * painting doesn't blast part of that rectangle away so
             * that when we draw it next, garbage is left around.
             */
            if (ppg->m_fDragRectShown)
                ppg->DrawDropTargetRect(NULL, NULL);

            hDC=BeginPaint(hWnd, &ps);

            //Draw only if we have a page to show.
            if (0!=ppg->m_cPages)
                ppg->Draw(hDC, FALSE, FALSE);

            EndPaint(hWnd, &ps);

            //Turn the rectangle back on, if necessary.
            if (ppg->m_fDragRectShown)
                ppg->DrawDropTargetRect(NULL, NULL);
            break;


        case WM_HSCROLL:
        case WM_VSCROLL:
            idScroll=(WM_HSCROLL==iMsg) ? SB_HORZ : SB_VERT;

            iPos=GetScrollPos(hWnd, idScroll);
            iTmp=iPos;
            GetScrollRange(hWnd, idScroll, &iMin, &iMax);

            switch (LOWORD(wParam))
                {
                case SB_LINEUP:     iPos -= 20;  break;
                case SB_PAGEUP:     iPos -=100;  break;
                case SB_LINEDOWN:   iPos += 20;  break;
                case SB_PAGEDOWN:   iPos +=100;  break;

                case SB_THUMBPOSITION:
                    iPos=ScrollThumbPosition(wParam, lParam);
                    break;

                //We don't want scrolling on this message.
                case SB_THUMBTRACK:
                    return 0L;
                }

            iPos=max(iMin, min(iPos, iMax));

            if (iPos!=iTmp)
                {
                //Set the new position and scroll the window
                SetScrollPos(hWnd, idScroll, iPos, TRUE);

                if (SB_HORZ==idScroll)
                    {
                    ppg->m_xPos=iPos;
                    ScrollWindow(hWnd, iTmp-iPos, 0, NULL, NULL);
                    }
                else
                    {
                    ppg->m_yPos=iPos;
                    ScrollWindow(hWnd, 0, iTmp-iPos, NULL, NULL);
                    }
                }

            break;

        case WM_RBUTTONDOWN:
            if (NULL==ppg->m_pPageCur)
                break;

            fDirty=ppg->m_pPageCur->OnRightDown(wParam
                , LOWORD(lParam), HIWORD(lParam));
            break;

        case WM_LBUTTONDOWN:
            if (NULL==ppg->m_pPageCur)
                break;

            fDirty=ppg->m_pPageCur->OnLeftDown(wParam
                , LOWORD(lParam), HIWORD(lParam));
            break;

        case WM_LBUTTONUP:
            if (NULL==ppg->m_pPageCur)
                break;

            fDirty=ppg->m_pPageCur->OnLeftUp(wParam
                , LOWORD(lParam), HIWORD(lParam));
            break;

        case WM_LBUTTONDBLCLK:
            if (NULL==ppg->m_pPageCur)
                break;

            fDirty=ppg->m_pPageCur->OnLeftDoubleClick(wParam, LOWORD(lParam)
                , HIWORD(lParam));
            break;

        case WM_MOUSEMOVE:
            if (NULL==ppg->m_pPageCur)
                break;

            ppg->m_pPageCur->OnMouseMove(wParam, LOWORD(lParam)
                , HIWORD(lParam));
            break;

        case WM_TIMER:
            if (NULL==ppg->m_pPageCur)
                break;

            ppg->m_pPageCur->OnTimer(wParam);
            break;

        case WM_NCHITTEST:
            if (NULL!=ppg->m_pPageCur)
                {
                /*
                 * This just saves information in the page for
                 * OnSetCursor
                 */
                ppg->m_pPageCur->OnNCHitTest(LOWORD(lParam)
                    , HIWORD(lParam));
                }

            return DefWindowProc(hWnd, iMsg, wParam, lParam);

        case WM_SETCURSOR:
            if (NULL!=ppg->m_pPageCur)
                {
                if (ppg->m_pPageCur->OnSetCursor(LOWORD(lParam)))
                    break;
                }

            return DefWindowProc(hWnd, iMsg, wParam, lParam);


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

    ppg->m_fDirty |= fDirty;
    return 0L;
    }



/*
 * RectConvertMappings
 *
 * Purpose:
 *  Converts the contents of a rectangle from device to logical
 *  coordinates where the hDC defines the logical coordinates.
 *
 * Parameters:
 *  pRect           LPRECT containing the rectangle to convert.
 *  hDC             HDC describing the logical coordinate system.
 *                  if NULL, uses a screen DC in MM_LOMETRIC.
 *  fToDevice       BOOL TRUE to convert from uConv to device,
 *                  FALSE to convert device to uConv.
 *
 * Return Value:
 *  None
 */

void RectConvertMappings(LPRECT pRect, HDC hDC, BOOL fToDevice)
    {
    POINT   rgpt[2];
    BOOL    fSysDC=FALSE;

    if (NULL==pRect)
        return;

    rgpt[0].x=pRect->left;
    rgpt[0].y=pRect->top;
    rgpt[1].x=pRect->right;
    rgpt[1].y=pRect->bottom;

    if (NULL==hDC)
        {
        hDC=GetDC(NULL);
        SetMapMode(hDC, MM_LOMETRIC);
        fSysDC=TRUE;
        }

    if (fToDevice)
        LPtoDP(hDC, rgpt, 2);
    else
        DPtoLP(hDC, rgpt, 2);

    if (fSysDC)
        ReleaseDC(NULL, hDC);

    pRect->left=rgpt[0].x;
    pRect->top=rgpt[0].y;
    pRect->right=rgpt[1].x;
    pRect->bottom=rgpt[1].y;

    return;
    }






/*
 * CPages::Draw
 *
 * Purpose:
 *  Paints the current page in the pages window.
 *
 * Parameters:
 *  hDC             HDC to draw on, could be a metafile or printer
 *                  DC or any other type of DC.
 *  fNoColor        BOOL indicating if we should use screen colors
 *                  or printer colors (B&W).  Objects are printed
 *                  as-is, however.  This is TRUE for printer DCs
 *                  or print preview.
 *  fPrinter        BOOL indicating if this is a printer DC in which
 *                  case we eliminate some of the fancy drawing,
 *                  like shadows on the page and so forth.
 *
 * Return Value:
 *  None
 */

void CPages::Draw(HDC hDC, BOOL fNoColor, BOOL fPrinter)
    {
    RECT            rc, rcT;
    UINT            uMM;
    HPEN            hPen;
    HBRUSH          hBrush;
    HGDIOBJ         hObj1, hObj2;
    COLORREF        cr;
    TCHAR           szTemp[20];
    UINT            cch;
    SIZE            sz;
    PCPage          pPage;
    RECT            rcPos;

    //Make sure the DC is in LOMETRIC

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美中文字幕久久| 日本一区二区免费在线| 久久久久久久电影| 一区二区三区在线免费播放| 国产一区二区三区蝌蚪| 欧美一区午夜视频在线观看| 亚洲欧美综合网| 国产精品18久久久| 精品国产制服丝袜高跟| 日韩成人午夜精品| 欧洲日韩一区二区三区| 亚洲精品视频在线| 色综合天天综合网天天看片| 国产午夜精品一区二区三区视频 | 91精品国产欧美一区二区成人| 国产日韩欧美麻豆| 国产精品综合在线视频| 日韩西西人体444www| 天天色 色综合| 欧美日韩黄色影视| 午夜在线成人av| 欧美无乱码久久久免费午夜一区| 国产精品久久久久久久久免费樱桃 | 午夜精品一区二区三区免费视频 | 欧美巨大另类极品videosbest| 亚洲天堂2014| 色欧美88888久久久久久影院| 中文欧美字幕免费| 成人a免费在线看| 国产精品初高中害羞小美女文| 国产不卡在线视频| 18欧美亚洲精品| 欧美综合天天夜夜久久| 亚洲一二三区视频在线观看| 欧美偷拍一区二区| 偷窥少妇高潮呻吟av久久免费| 欧美人与禽zozo性伦| 日日摸夜夜添夜夜添精品视频| 69堂国产成人免费视频| 久久99精品国产麻豆婷婷洗澡| 日韩精品一区二区三区视频| 九九久久精品视频| 国产欧美日韩在线| 91小视频在线| 亚洲国产日产av| 777奇米四色成人影色区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 成人三级伦理片| 中文字幕一区在线观看| 色婷婷久久一区二区三区麻豆| 亚洲中国最大av网站| 日韩视频免费直播| 国产成人av资源| 一二三四区精品视频| 欧美成人女星排名| 不卡大黄网站免费看| 亚洲国产一区在线观看| 精品理论电影在线| 欧美日韩精品一区二区天天拍小说 | 欧美成人伊人久久综合网| 成人午夜在线视频| 午夜精品福利视频网站| 国产日韩一级二级三级| 欧美午夜电影一区| 韩国精品主播一区二区在线观看 | 欧美一a一片一级一片| 日本视频免费一区| 欧美国产日本韩| 欧美精品丝袜中出| 成人av在线资源网站| 亚洲mv大片欧洲mv大片精品| 国产婷婷一区二区| 欧美日韩在线免费视频| 国产成人精品www牛牛影视| 亚洲国产cao| 国产亚洲综合在线| 欧美三级视频在线播放| 成人中文字幕合集| 日本午夜一本久久久综合| 国产精品国产三级国产| 欧美tickling挠脚心丨vk| 97久久精品人人做人人爽| 黑人精品欧美一区二区蜜桃 | 国产女同互慰高潮91漫画| 欧美亚一区二区| 成人深夜在线观看| 青青青伊人色综合久久| 亚洲网友自拍偷拍| 亚洲欧美一区二区视频| 欧美精品一区视频| 欧美日韩免费高清一区色橹橹| 国产精品99久久久久| 三级影片在线观看欧美日韩一区二区 | 伊人色综合久久天天| 国产欧美日韩麻豆91| 精品成人佐山爱一区二区| 在线观看网站黄不卡| 成人av影院在线| 国产成人亚洲综合a∨婷婷| 日本亚洲视频在线| 日韩不卡在线观看日韩不卡视频| 亚洲精品视频观看| 亚洲精品乱码久久久久久日本蜜臀| 337p日本欧洲亚洲大胆精品| 日韩美女一区二区三区四区| 欧美日韩午夜精品| 欧美日韩不卡一区| 欧美唯美清纯偷拍| 欧美精品 日韩| 欧美日本免费一区二区三区| 欧美在线看片a免费观看| 色综合天天综合在线视频| 91亚洲精品久久久蜜桃网站| 不卡在线视频中文字幕| 成人精品高清在线| 99精品久久只有精品| 99在线精品一区二区三区| 99国产精品国产精品久久| 99在线热播精品免费| 一本到不卡精品视频在线观看| 91免费看`日韩一区二区| 在线欧美一区二区| 欧美性受xxxx黑人xyx性爽| 在线一区二区三区四区五区| 在线影视一区二区三区| 欧美精品xxxxbbbb| 91精品国产福利| 精品国产91洋老外米糕| 久久亚洲捆绑美女| 国产精品丝袜黑色高跟| 亚洲日本一区二区三区| 香蕉乱码成人久久天堂爱免费| 午夜国产不卡在线观看视频| 久久超级碰视频| 成人免费av网站| 欧美午夜一区二区三区免费大片| 欧美电影影音先锋| 国产亚洲欧美日韩在线一区| 亚洲欧美在线视频观看| 亚洲国产成人tv| 国产一区二区看久久| 色悠久久久久综合欧美99| 在线成人av影院| 国产欧美一区二区三区网站| 亚洲精品ww久久久久久p站| 日本sm残虐另类| 成人app在线观看| 欧美日韩一区二区在线观看视频 | 久久亚洲欧美国产精品乐播| 亚洲欧美一区二区三区孕妇| 亚洲.国产.中文慕字在线| 国产成人无遮挡在线视频| 欧美日韩一区二区三区四区| 久久久久久亚洲综合影院红桃| 一区二区三区四区中文字幕| 韩日av一区二区| 一本久久精品一区二区| 欧美精品一区二区三区在线播放 | 欧美午夜精品久久久久久超碰| 欧美zozozo| 亚洲精品乱码久久久久久黑人 | 91福利在线看| 国产精品网友自拍| 丝袜脚交一区二区| 波多野结衣欧美| 26uuu色噜噜精品一区| 亚洲综合免费观看高清完整版在线| 日本三级亚洲精品| 91极品美女在线| 中文一区在线播放| 狠狠色丁香久久婷婷综| 在线播放一区二区三区| 亚洲日本在线观看| 成人av在线影院| 久久久久久久综合日本| 日韩av在线免费观看不卡| 欧美在线观看一区| 国产精品麻豆视频| 国产精品自拍毛片| 欧美mv日韩mv国产网站| 亚洲h在线观看| 欧美羞羞免费网站| 一区二区日韩av| 91久久精品网| 一区二区在线观看免费| 岛国av在线一区| 亚洲国产电影在线观看| 国产乱码精品一区二区三区五月婷| 91精品国产色综合久久久蜜香臀| 亚洲午夜精品在线| 欧美日韩国产天堂| 无码av免费一区二区三区试看| 欧美午夜精品久久久| 亚洲一区二区在线免费观看视频| 色天使色偷偷av一区二区| 1000精品久久久久久久久| 91网址在线看| 亚洲一二三四在线| 欧美美女bb生活片| 毛片av中文字幕一区二区|