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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? window.c

?? rtCell 實(shí)時(shí)微內(nèi)核-具有下列功能: 1. 完全搶占的實(shí)時(shí)微內(nèi)核結(jié)構(gòu)
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/*
 *******************************************************************************
 *                      The real-time kernel "rtCell"                          *
 *              Copyright 2005 taowentao, allrights reserved.                  *
 * File : Window.c                                                             *
 * By   : taowentao     2006-09-02  2007-05-20                                 *
 *******************************************************************************
 */

#if !defined(WINDOW_H)
#include "giCell\Wins\include\Window.h"
#endif  

/*
 *******************************************************************************
 *                                                                             *
 *******************************************************************************
 */

#define PAGE             (16) 
#define ACTIVE_BAR_CLR   (WindowBarColor[0])
#define INACTIVE_BAR_CLR (WindowBarColor[1])
#define ACTIVE_CLR       (0)
#define INACTIVE_CLR     (1)
#define WIN_BORDER       (2)
#define BAR_XOFF         (4)
#define BAR_YOFF         (4)

#define BAR_HEIGHT       (18)
#define VIEWSYS_XOFF     (BAR_XOFF + 3)
#define VIEWSYS_YOFF     (BAR_YOFF + 1)
#define CAPTION_XOFF     (BAR_XOFF + 22)
#define CAPTION_YOFF     (BAR_YOFF + 1)     
#define SYSBTN_WIDTH     (16)
#define SYSBTN_HEIGHT    (14)
#define BTN_DOWN         (0)
#define BTN_UP           (-1)

#define CLIENT_XOFF      (BAR_XOFF + 2)
#define CLIENT_YOFF      (BAR_YOFF + BAR_HEIGHT + 1)
#define WIN_MAX_XSIZE    (GetWidth()+(BAR_XOFF<<1))
#define WIN_MAX_YSIZE    (GetHeight()+(BAR_YOFF<<1))

#define SYSBTN_YOFF      (6)
#define SYSBTN_XOFF      (2) 

static const COLOR WindowBarColor[2] = {GD_LIGHTBLUE, GD_DARKGRAY};
static const COLOR ClientColor = GD_GRAY;
static const COLOR CaptionColor = GD_WHITE;
static const COLOR MouseEnterColor = GD_LIGHTRED;

static const BYTE  sysMin[4] = {0x07, 0xE0, 0x07, 0xE0};
static const BYTE  sysMax[18] = {0x0F, 0xF8, 0x0F, 0xF8, 0x08, 0x08,
                                 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
                                 0x08, 0x08, 0x08, 0x08, 0x0F, 0xF8
                                };
static const BYTE  sysNormal[18] = {0x03, 0xF0, 0x03, 0xF0, 0x02, 0x10,
                                    0x0F, 0xD0, 0x0F, 0xD0, 0x08, 0x70,
                                    0x08, 0x40, 0x08, 0x40, 0x0F, 0xC0
                                   };
static const BYTE  sysClose[14] = {0x06, 0x18, 0x03, 0x30, 0x01, 0xE0, 0x00,
                                   0xC0, 0x01, 0xE0, 0x03, 0x30, 0x06, 0x18
                                  };

static const BYTE  viewSYS[28] = {0xFF, 0x1F, 0x3C, 0x06, 0x1C, 0x04, 0x1C,
                                  0x0C, 0x0E, 0x08, 0x0E, 0x18, 0x07, 0x10,
                                  0x07, 0x30, 0x03, 0xA0, 0x03, 0xE0, 0x01,
                                  0xC0, 0x01, 0xC0, 0x00, 0x80, 0x00, 0x80
                                 };

/*
 *******************************************************************************
 *                                                                             *
 *******************************************************************************
 */

static void SysBtnViewPaint(VIEW *pView)
{
    SYSBTN* pBtn;
    WINDOW* pWin;
    int     Off;
    COLOR   clr;
    RECT    r;

    pBtn = OBJ_FROM_VIEW(pView);
    pWin = OBJ_FROM_VIEW(pView->pParent);
    r = pView->viewRect;
    FillRect(&r, pBtn->BottonColor);
    
    if ((pBtn->Status & SYSBTN_MOUSE_CATCH) &&
        (pBtn->Status & SYSBTN_MOUSE_ENTER)) {
        DrawDownBotton(&r);
        Off = BTN_DOWN;
    } else {
        DrawUpBotton(&r);
        Off = BTN_UP;
    }

    if (pBtn->Status & SYSBTN_MOUSE_ENTER) clr = MouseEnterColor;
    else clr = GD_BLACK;

    if (pBtn->Status & SYSBTN_MIN_BTN) {
        if (pWin->Status & WIN_MIN_SIZE)
            DrawMatrix(r.left+Off, r.top+Off+3, 16, 9, sysNormal, clr);
        else
            DrawMatrix(r.left+Off, r.top+Off+10, 16, 2, sysMin, clr);
    } else if (pBtn->Status & SYSBTN_MAX_BTN) {
        if (pWin->Status & WIN_MAX_SIZE)
            DrawMatrix(r.left+Off, r.top+Off+3, 16, 9, sysNormal, clr);
        else
            DrawMatrix(r.left+Off, r.top+Off+1+2, 16, 9, sysMax, clr);
    } else if (pBtn->Status & SYSBTN_CLOSE_BTN) {
        DrawMatrix(r.left+Off, r.top+Off+1+3, 16, 7, sysClose, clr);
    }
}

static void ResizeWindow(WINDOW* pWin, const int dx, const int dy);
void SetWindow(WINDOW* pWin, int left, int top, int xSize, int ySize);
static void SetWindowSize(WINDOW* pWin, const int xs, const int ys);
static void SetWinScrollBar(WINDOW* pWin);
static void MoveWindow(WINDOW* pWin, const int dx, const int dy);

static CBOOL _cdecl_ SysBtnViewProc(VMSG *pMsg)
{  
    SYSBTN *pBtn = OBJ_FROM_VIEW(pMsg->pView);
    WINDOW *pWin = OBJ_FROM_VIEW(pMsg->pView->pParent);
    int x, y;
    
    switch (pMsg->MsgID) {
    case VMSG_PAINT:
        SysBtnViewPaint(pMsg->pView);
        return (true);
    case TIMERM_OUT:
    case KEYM_KEY_DOWN:
        InformView(pWin->pMainView, pMsg);
        return (true);
    case VMSG_GETFOCUS:
        pBtn->Status |= (SYSBTN_FOCUSSED);
        UpdateView(pMsg->pView);
        return (true);
    case VMSG_LOSTFOCUS:
        pBtn->Status &= ~(SYSBTN_FOCUSSED|SYSBTN_MOUSE_CATCH);
        UpdateView(pMsg->pView);
        return (true);
    case MSM_MS_ENTER:  
        SetMouseCursor(ARROW);
        pBtn->Status |= SYSBTN_MOUSE_ENTER;
        UpdateView(pMsg->pView);
        return (true);
    case MSM_MS_LEAVE:
        pBtn->Status &= ~(SYSBTN_MOUSE_ENTER);
        UpdateView(pMsg->pView);
        return (true);
    case MSM_LB_DOWN:
        if (pBtn->Status & SYSBTN_FOCUSSED) {
            pBtn->Status |= (SYSBTN_MOUSE_CATCH|SYSBTN_MOUSE_ENTER);
            UpdateView(pMsg->pView);
        }
        return (true);
    case MSM_LB_UP:
        if ((pBtn->Status & SYSBTN_MOUSE_CATCH) == 0) return (true);
        pBtn->Status &= ~(SYSBTN_MOUSE_CATCH);
        if ((pBtn->Status & SYSBTN_FOCUSSED) &&
            (pBtn->Status & SYSBTN_MOUSE_ENTER)) {
            pBtn->Status &= ~(SYSBTN_MOUSE_ENTER);           
            if (pBtn->Status & SYSBTN_CLOSE_BTN) { /* close botton */
                HideView(pWin->pMainView);
                return (true);  
            } else if (pBtn->Status & SYSBTN_MIN_BTN) {/* min botton */
                if (pWin->Status & WIN_MIN_SIZE) {
                    pWin->Status &= ~WIN_MIN_SIZE;
                    goto _set_normal_size_win;
                } else {
                    if (pWin->Status & WIN_MAX_SIZE)
                        pWin->Status &= ~WIN_MAX_SIZE;
                    pWin->Status |= WIN_MIN_SIZE;
                    x = pWin->pMainView->viewRect.left;
                    y = pWin->pMainView->viewRect.top;
                    if (x < 0) x = 0;
                    if (y < 0) y = 0;
                    SetWindow(pWin, x, y, FORM_MIN_XSIZE, FORM_MIN_YSIZE);
                }
            } else if (pBtn->Status & SYSBTN_MAX_BTN) { /* max botton */
                if (pWin->Status & WIN_MAX_SIZE) {
                    pWin->Status &= ~WIN_MAX_SIZE;
_set_normal_size_win:
                    SetWindow(pWin, pWin->WinRect.left, pWin->WinRect.top,
                              GetRectXSize(&(pWin->WinRect)),
                              GetRectYSize(&(pWin->WinRect))); 
                } else {
                    if (pWin->Status & WIN_MIN_SIZE)
                        pWin->Status &= ~WIN_MIN_SIZE;
                    pWin->Status |= WIN_MAX_SIZE;
                    SetWindow(pWin, -BAR_XOFF, -BAR_YOFF, WIN_MAX_XSIZE, WIN_MAX_YSIZE);
                }
            }
        } 
        return (true);  
    default:
        return (false);
    }
}

static SYSBTN* CreateSysBtn(int left, int top, int width, int height, VIEW* pParent)
{
    VIEW   *pView;
    SYSBTN *pBtn;

    if (pParent == NULL) 
        return (NULL);

    pView = CreateControl(left, top, width, height, pParent, VS_MOVABLE,
                          SysBtnViewProc, sizeof(SYSBTN));
    if (pView == NULL) return (NULL);
    
    pBtn = OBJ_FROM_VIEW(pView);
    pBtn->pView = pView;
    pBtn->BottonColor = ClientColor; 
    pBtn->Status = 0;  
    ShowView(pView);
    return (pBtn);
}

/*
 *******************************************************************************
 *                                                                             *
 *******************************************************************************
 */

static void SetWinScrollBar(WINDOW* pWin); 

static void _cdecl_ OnWinScroll(VIEW *pView, const int Off)
{
    WINDOW *pWin;
    VIEW *pClient;
    SCROLLBAR *pScrollbar = OBJ_FROM_VIEW(pView);

    if (Off == 0) return;
    pWin = OBJ_FROM_VIEW(pView->pParent);
    pClient = pWin->pClientView;
    if (pScrollbar->Align == CTRL_ALIGN_VCENTER)
        MoveAllChildViews(pClient, 0, Off);
    else
        MoveAllChildViews(pClient, Off, 0);
    UpdateView(pWin->pClientView);
} 

static void SetWinScrollBar(WINDOW* pWin)
{ 
    int xSize, ySize;
    CWORD flag = 0;
    RECT save, rect, *r;

    if ((pWin->Styles & WIN_SCROLL) == 0) return;

    save = pWin->pClientView->viewRect;
    r = &(pWin->pClientView->viewRect);
    MergeAllChildViewsRect(pWin->pClientView, &rect);
    
    xSize = GetRectXSize(&rect);
    ySize = GetRectYSize(&rect);
    if (GetRectYSize(r) < ySize) {
        flag |= 1;
        r->right -= BOX_W;
        MergeAllChildViewsRect(pWin->pClientView, &rect);
        xSize = GetRectXSize(&rect);  
    }
    if (GetRectXSize(r) < xSize) {
        flag |= 2;
        r->bottom -= BOX_W;
        MergeAllChildViewsRect(pWin->pClientView, &rect); 
        ySize = GetRectYSize(&rect);
    }
    if (GetRectYSize(r) < ySize) {
        if ((flag & 1) == 0) {
            flag |= 1;
            r->right -= BOX_W;
            MergeAllChildViewsRect(pWin->pClientView, &rect);
            xSize = GetRectXSize(&rect);  
        }
    }     
    if (GetRectXSize(r) < xSize) {
        if ((flag & 2) == 0) {
            flag |= 2;
            r->bottom -= BOX_W;
        }
    }

    pWin->MaxRect = rect;
    rect = (*r);
    pWin->pClientView->viewRect = save;

    if (flag == 3) {
        SetScrolbar(pWin->pVScrolbar, PAGE, &save, &rect, &(pWin->MaxRect), true);
        SetScrolbar(pWin->pHScrolbar, PAGE, &save, &rect, &(pWin->MaxRect), true);
    } else if (flag == 1) {
        SetScrolbar(pWin->pVScrolbar, PAGE, &save, &rect, &(pWin->MaxRect), false);
    } else if (flag == 2) {
        SetScrolbar(pWin->pHScrolbar, PAGE, &save, &rect, &(pWin->MaxRect), false);
    } 

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本久久a久久免费精品不卡| 欧美视频一区二| 亚洲一区二区在线免费观看视频| 日韩视频中午一区| 91啪亚洲精品| 国产盗摄视频一区二区三区| 日韩av电影免费观看高清完整版| 中文字幕一区二区三区不卡在线| 日韩午夜电影av| 欧美亚洲一区三区| jizzjizzjizz欧美| 国产一区二区三区精品视频| 亚洲国产一区二区三区| |精品福利一区二区三区| 久久新电视剧免费观看| 欧美一级理论性理论a| 色美美综合视频| 91影视在线播放| 国产91精品露脸国语对白| 激情五月激情综合网| 亚洲gay无套男同| 亚洲欧美国产77777| 香蕉影视欧美成人| 亚洲欧美日本韩国| 中文字幕一区二区三区乱码在线| 日本一区二区视频在线观看| 精品久久免费看| 欧美电视剧在线看免费| 欧美一二三区在线| 91精品国产色综合久久不卡电影| 欧美私模裸体表演在线观看| 色999日韩国产欧美一区二区| av一本久道久久综合久久鬼色| 成人小视频在线| 国产成人高清在线| 国产99久久久精品| 波多野结衣视频一区| 国产一区视频导航| 国产精品一级二级三级| 国产伦理精品不卡| 成人免费不卡视频| 成人免费视频一区二区| av中文字幕不卡| 91麻豆高清视频| 色噜噜狠狠色综合中国| 欧美三级资源在线| 欧美另类久久久品| 欧美一区二区精美| 久久综合成人精品亚洲另类欧美| 久久久久高清精品| 国产精品欧美一级免费| 亚洲另类中文字| 视频在线观看一区二区三区| 午夜久久久影院| 久久er精品视频| 国产精品夜夜爽| 91丝袜呻吟高潮美腿白嫩在线观看| 一本大道久久精品懂色aⅴ| 日本伦理一区二区| 9191国产精品| 久久精品亚洲精品国产欧美| 中文字幕一区二区不卡| 亚洲一区二区在线播放相泽| 久久精品国产亚洲5555| 成人免费的视频| 欧美日高清视频| 欧美tk丨vk视频| 中文av一区二区| 亚洲一区二区三区四区五区中文 | 国产欧美日韩精品一区| 中文字幕一区二区5566日韩| 亚洲国产裸拍裸体视频在线观看乱了| 五月激情综合婷婷| 色伊人久久综合中文字幕| 欧美视频一区二区在线观看| 精品久久国产字幕高潮| 亚洲三级电影网站| 日韩电影在线观看网站| 成人开心网精品视频| 欧美美女网站色| 日本一区二区三区四区| 亚洲午夜三级在线| 国产麻豆精品在线观看| 日本精品视频一区二区三区| 精品成人佐山爱一区二区| 亚洲精品中文在线观看| 国产一区二区三区免费播放| 欧洲精品在线观看| 久久久精品综合| 日韩国产成人精品| 91一区二区三区在线观看| 日韩欧美一区二区不卡| 亚洲精品视频在线看| 国产一区二区三区四| 欧美日韩黄色一区二区| 中文字幕中文字幕中文字幕亚洲无线 | 欧美一区二区三区免费在线看| 中文字幕精品—区二区四季| 日韩成人一级片| 色婷婷综合久久久中文字幕| 久久嫩草精品久久久久| 人妖欧美一区二区| 色欧美片视频在线观看在线视频| 精品1区2区在线观看| 亚洲444eee在线观看| 91美女在线观看| 久久精品无码一区二区三区| 轻轻草成人在线| 91久久精品国产91性色tv| 亚洲国产电影在线观看| 久久精品国产99久久6| 欧美日韩一区在线| 亚洲黄色片在线观看| av影院午夜一区| 婷婷中文字幕综合| 97精品视频在线观看自产线路二| 日韩限制级电影在线观看| 亚洲一区二区综合| 色婷婷久久久久swag精品| 日本一区二区动态图| 国产精品中文字幕欧美| 欧美成人a在线| 日韩一区欧美二区| 欧美日韩国产成人在线免费| 一区二区高清视频在线观看| 96av麻豆蜜桃一区二区| 亚洲欧美在线视频观看| 成人国产在线观看| 中文字幕不卡三区| 成人晚上爱看视频| 国产欧美一区二区精品性| 国产精品白丝av| 欧美韩国一区二区| 成人av免费在线观看| 国产精品不卡一区二区三区| 波多野结衣91| 亚洲精品中文在线观看| 欧美午夜电影网| 日韩中文欧美在线| 日韩欧美国产一区二区三区| 韩国v欧美v亚洲v日本v| 国产欧美精品区一区二区三区| 从欧美一区二区三区| 一区二区中文字幕在线| 色综合色综合色综合| 一区二区三区小说| 欧美精品乱人伦久久久久久| 青青青伊人色综合久久| 久久色中文字幕| 国产精品夜夜爽| 亚洲天堂久久久久久久| 欧美艳星brazzers| 久久精品av麻豆的观看方式| 久久久亚洲国产美女国产盗摄| 国产成人综合精品三级| 国产精品久久久久毛片软件| 在线精品视频一区二区| 日韩av电影天堂| 久久久久久毛片| 91视视频在线观看入口直接观看www | 国产三区在线成人av| jiyouzz国产精品久久| 亚洲高清久久久| 337p粉嫩大胆色噜噜噜噜亚洲| 岛国一区二区在线观看| 亚洲一区二区三区中文字幕在线| 欧美一区二区精品在线| 成人国产精品视频| 午夜亚洲国产au精品一区二区| 欧美xfplay| 91在线精品一区二区| 日韩电影一区二区三区| 国产精品色呦呦| 欧美久久久久久蜜桃| 国产电影一区二区三区| 亚洲午夜日本在线观看| 久久精品这里都是精品| 欧美性高清videossexo| 国产丶欧美丶日本不卡视频| 亚洲综合免费观看高清在线观看| 日韩欧美国产综合在线一区二区三区| 成人午夜免费av| 奇米影视一区二区三区| 最新久久zyz资源站| 日韩精品一区二区三区在线播放| av毛片久久久久**hd| 蜜臀久久99精品久久久画质超高清| 亚洲欧美综合另类在线卡通| 制服.丝袜.亚洲.中文.综合| 波波电影院一区二区三区| 久久综合综合久久综合| 伊人开心综合网| 日本不卡一区二区三区高清视频| 国产精品视频麻豆| 欧美变态tickling挠脚心| 欧美午夜精品一区二区蜜桃 | 91官网在线免费观看| 国产伦精品一区二区三区免费| 亚洲成人精品影院| 国产精品国产精品国产专区不蜜|