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

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

?? dialog.c

?? DOS環境下圖形用戶界面支持系統
?? C
?? 第 1 頁 / 共 5 頁
字號:
    for(i=0; i<pDlgHeader->NumOfItems; i++)
    {   
        pCtrlData = pDlgHeader->pCtrlData + i;
        if((pCtrlData->wID) == IDCANCEL)
            return TRUE;
    }
    
    return FALSE;
}

/*
 * Function: PCTRLDATA GUIAPI GetControlData( PDLGHEADER pDlgHeader, WORD wID ).
 *      This function get the pointer to CONTROLDATA struct 
 *     according to control's ID.
 * Parameters:
 *      wID: ID of control;
 * Return: 
 *      success----the pointer to CONTROLDATA struct;
 *      failure----NULL.
 */
PCTRLDATA GUIAPI GetControlData( PDLGHEADER pDlgHeader, WORD wID )
{
    short i;
    PCTRLDATA pCtrlData;
    
    for(i=0; i<pDlgHeader->NumOfItems; i++)
    {   
        pCtrlData = pDlgHeader->pCtrlData + i;
        if((pCtrlData->wID) == wID)
            return pCtrlData;
    }
    
    return NULL;
}

void GUIAPI GetControlRect( PDLGHEADER pDlgHeader, WORD wID, LPRECT lpRect)
{
    PCTRLDATA pCtrlData = GetControlData(pDlgHeader, wID);
    
    if(pCtrlData == NULL)
        return;
    
    lpRect->left = pCtrlData->lx;
    lpRect->top = pCtrlData->ty;
    lpRect->right = pCtrlData->rx;
    lpRect->bottom = pCtrlData->by;
}

/*
 * Function: static PCTRLDATA GetNextTabstop( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData ).
 *      This function get the next control with style of WS_TABSTOP.
 * Parameters:
 *      pCtrlData: given control's pointer;
 * Return: 
 *      success----pointer to expect control;
 *      failure----given pointer.
 */
static PCTRLDATA GetNextTabstop( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData )
{
    short i;
    PCTRLDATA pFirst = NULL;
            
    for(i=0; i<pDlgHeader->NumOfItems; i++)
    {   
        if(((pDlgHeader->pCtrlData + i)->lStyle) & WS_TABSTOP)
        {
            pFirst = pDlgHeader->pCtrlData + i;
            break;
        }
    }
    if(pFirst == NULL)
        return pCtrlData;
    
    while(pCtrlData != (pDlgHeader->pCtrlData + pDlgHeader->NumOfItems-1))
    {
        pCtrlData++;
        if((pCtrlData->lStyle) & WS_TABSTOP)
            return  pCtrlData;
            
    }
    
    return pFirst;
}
/*
 * Function: static PCTRLDATA GetLastTabstop( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData ).
 *      This function get the previous control with style of WS_TABSTOP.
 * Parameters:
 *      pCtrlData: given control's pointer;
 * Return: 
 *      success----pointer to expect control;
 *      failure----pointer to given pointer.
 */
static PCTRLDATA GetLastTabstop( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData )
{
    short i;
    PCTRLDATA pLast = NULL;
            
    for(i=0; i<pDlgHeader->NumOfItems; i++)
    {   
        if(((pDlgHeader->pCtrlData + i)->lStyle) & WS_TABSTOP)
            pLast = pDlgHeader->pCtrlData + i;
    }
    if(pLast == NULL)
        return pCtrlData;
    
    while( pCtrlData != pDlgHeader->pCtrlData )
    {
        pCtrlData--;
        if((pCtrlData->lStyle) & WS_TABSTOP)
            return  pCtrlData;
    }
    
    return pLast;
}
/*
 * Function: static PCTRLDATA GetNextItemInGroup( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData ).
 *      This function get the next control that is in a group with 
 *     given control.
 * Parameters:
 *      pCtrlData: given control's pointer;
 * Return: 
 *      success----pointer to expect control;
 *      failure----given pointer.
 */
static PCTRLDATA GetNextItemInGroup( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData )
{
    short i = 0;
    PCTRLDATA pFirstInGrp = NULL;
                     
    do
    {
        if(((pDlgHeader->pCtrlData+i)->lStyle) & WS_GROUP)
            pFirstInGrp = pDlgHeader->pCtrlData + i;
        i++;
    }while((pDlgHeader->pCtrlData+i) != pCtrlData);
    
    if(pCtrlData->lStyle & WS_GROUP)
        pFirstInGrp = pCtrlData;
        
    if(pFirstInGrp == NULL)
        return pCtrlData;
        
    pCtrlData++;
    if(pCtrlData == (pDlgHeader->pCtrlData + pDlgHeader->NumOfItems))
        return pFirstInGrp;
        
    if(!(pCtrlData->lStyle & WS_GROUP))
        return pCtrlData;
    
    return pFirstInGrp;
}

/*
 * Function: static PCTRLDATA GetLastItemInGroup( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData ).
 *      This function get the previous control that is a group with 
 *     given control.
 * Parameters:
 *      pCtrlData: given control's pointer;
 * Return: 
 *      success----pointer to expect control;
 *      failure----given pointer 
 */
static PCTRLDATA GetLastItemInGroup( PDLGHEADER pDlgHeader, PCTRLDATA pCtrlData )
{
    short i = 1;
    PCTRLDATA pLastInGrp = NULL;
                     
    while((pCtrlData + i) != (pDlgHeader->pCtrlData + pDlgHeader->NumOfItems))
    {
        if(((pCtrlData + i)->lStyle) & WS_GROUP)
        {
            pLastInGrp = pCtrlData + i - 1;
            break;
        }
        i++;
    }
    
    if(pLastInGrp == NULL)
        return pCtrlData;
        
    if(pCtrlData->lStyle & WS_GROUP)
        return pLastInGrp;
    else
        return --pCtrlData;
}

/*
 * Function: void GUIAPI GrayDlgItem( PDLGHEADER pDlgHeader, WORD wID ).
 *      This function gray/disable the given control. 
 * Parameters:
 *      pDlgHeader: the pointer to DLGHEADER structure
 *      wID: given control's ID;
 * Return: 
 *      None.
 */
void GUIAPI GrayDlgItem( PDLGHEADER pDlgHeader, WORD wID)
{    
    PCTRLDATA pCtrlData;
    
    if(!(pCtrlData = GetControlData(pDlgHeader, wID)))
        return;
    
    if(pCtrlData->lStyle & WS_DISABLED)
        return;
    
    if(pCtrlData->lStyle & WS_CHECKED)
    {
        pCtrlData->lStyle &= 0xffffefffL;
        _setcolor(7);
        _ellipse(_GFILLINTERIOR, pCtrlData->lx + 4, pCtrlData->ty + 4,pCtrlData->lx + 12,pCtrlData->ty + 12);
                    pCtrlData->lStyle &= 0xffffefffL;
    }       
    pCtrlData->lStyle |= WS_DISABLED;
    
    _setcolor(COLOR_lightgray);
    _rectangle(_GFILLINTERIOR, pCtrlData->lx - 1, pCtrlData->ty - 1, pCtrlData->rx + 1, pCtrlData->by + 1);
    
    DrawCtrl(pCtrlData->bClass, pCtrlData->lStyle, 
        pCtrlData->lx, pCtrlData->ty, pCtrlData->rx, pCtrlData->by);
    DrawCtrlClientArea(pCtrlData);
}

/*
 * Function: void GUIAPI UngrayDlgItem( PDLGHEADER pDlgHeader, WORD wID ).
 *      This function ungray/enable the given control. 
 * Parameters:
 *      pDlgHeader: the pointer to DLGHEADER structure;
 *      wID: given control's ID;
 * Return: 
 *      None.
 */
void GUIAPI UngrayDlgItem( PDLGHEADER pDlgHeader, WORD wID)
{    
    PCTRLDATA pCtrlData;
    
    if(!(pCtrlData = GetControlData(pDlgHeader, wID)))
        return;
    
    if(!(pCtrlData->lStyle & WS_DISABLED))
        return;
        
    pCtrlData->lStyle &= 0xf7ffffffL;
    
    DrawCtrl(pCtrlData->bClass, pCtrlData->lStyle, 
        pCtrlData->lx, pCtrlData->ty, pCtrlData->rx, pCtrlData->by);
    DrawCtrlClientArea(pCtrlData);
}

void GUIAPI ShowDlgItem( PDLGHEADER pDlgHeader, WORD wID )
{
    PCTRLDATA pCtrlData;
    
    if(!(pCtrlData = GetControlData(pDlgHeader, wID)))
        return;
    
    pCtrlData->lStyle &= 0xf7ffffffL;
    
    DrawCtrl(pCtrlData->bClass, pCtrlData->lStyle, 
        pCtrlData->lx, pCtrlData->ty, pCtrlData->rx, pCtrlData->by);
    DrawCtrlClientArea(pCtrlData);
}

void GUIAPI HideDlgItem( PDLGHEADER pDlgHeader, WORD wID )
{
    PCTRLDATA pCtrlData;
    
    if(!(pCtrlData = GetControlData(pDlgHeader, wID)))
        return;
    
    pCtrlData->lStyle |= WS_DISABLED;
    
    _setcolor(COLOR_lightgray);
    _rectangle(_GFILLINTERIOR, pCtrlData->lx - 1, pCtrlData->ty - 1, pCtrlData->rx + 1, pCtrlData->by + 1);
}

/*
 * Function: void GUIAPI DrawTextInStaticItem( PDLGHEADER pDlgHeader, WORD wID, LPSTR lpStr )
 *      This function output text in the specified static control.
 * Parameters:
 *      pDlgHeader: the pointer to DLGHEADER structure;
 *      wID: given control's ID;
 *      lpStr: the text that want to output;
 * Return: 
 *      None.
 */
void GUIAPI DrawTextInStaticItem( PDLGHEADER pDlgHeader, WORD wID, LPCSTR lpStr )
{
    PCTRLDATA pCtrlData;
    short buttonx, buttony;
    
    if(!(pCtrlData = GetControlData(pDlgHeader, wID)))
        return;
    
    set_cliprgn(pCtrlData->lx, pCtrlData->ty, pCtrlData->rx, pCtrlData->by);

    _setcolor(7);
    _rectangle(_GFILLINTERIOR, pCtrlData->lx, pCtrlData->ty, pCtrlData->rx, pCtrlData->by);
    
    buttony = (pCtrlData->ty
            + pCtrlData->by)/2
            - 8;
    switch((pCtrlData->lStyle) & 0x0000000fL)
    {
        case ES_RIGHT:
            buttonx = pCtrlData->rx
                    - _fstrlen(lpStr) * 8;
        break;
        
        case ES_LEFT:
            buttonx = pCtrlData->lx;
        break;
        
        case ES_CENTER:
            buttonx = (pCtrlData->lx
                        + pCtrlData->rx)/2
                    - _fstrlen(lpStr) * 4;
        break;
        
        default:
            buttonx = pCtrlData->lx;
        break;
        
    }
    
    set_color(0);
    if(pCtrlData->lStyle & WS_DISABLED)
        SetGrayTextMask();
    cc_printf(lpStr, buttonx, buttony);
    if(pCtrlData->lStyle & WS_DISABLED)
        RemoveDisplayMask();
        
    set_cliprgn(0, 0, vc.numxpixels - 1, vc.numypixels - 1);
}

static BOOL bIsSysMsgBox = FALSE;
/*
 * Function: int GUIAPI SysMessageBox( PGUIINFO pGUIInfo, int Index, LPSTR lpImpMsg).
 *      This function manage a system message box. 
 * Parameters:
 *      Index: the index of MessageBox;
 *      lpImpMsg: the pointer to important message string.
 * Return: 
 *      the choice of MessageBox, such as OK, CANCEL etc..
 */
int GUIAPI SysMessageBox( PGUIINFO pGUIInfo, LPCSTR lpszText, LPCSTR lpszCaption, DWORD lStyle)
{
    int iRet;
    
    bIsSysMsgBox = TRUE;
    iRet = MessageBox(pGUIInfo, lpszText, lpszCaption, lStyle);
    bIsSysMsgBox = FALSE;
    
    return iRet;
}

/*
 * Function: int GUIAPI MessageBox( PGUIINFO pGUIInfo, int Index, LPSTR lpImpMsg).
 *      This function manage a message box. 
 * Parameters:
 *      Index: the index of MessageBox;
 *      lpImpMsg: the pointer to important message string.
 * Return: 
 *      the choice of MessageBox, such as OK, CANCEL etc..
 */
int GUIAPI MessageBox( PGUIINFO pGUIInfo, LPCSTR lpszText, LPCSTR lpszCaption, DWORD lStyle)
{
    int          i;
    int          iNumOfRow, iMaxCol, iCol;
    short        Width, Height;
    _vmhnd_t     hdlImage;
    int          iRetCtrl = 0;
    int          CtrlRet[3];
    int          RetValue;
    MSG          Msg;
    BOOL         fEND = FALSE;
    CTRLDATA     CtrlData[3] = {
                    {BS_PUSHBUTTON | WS_TABSTOP,
                     0, 0, 0, 0, 1, BUTTON, NULL, NULL},
                    {BS_PUSHBUTTON | WS_TABSTOP,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服.丝袜.亚洲.中文.综合| 中文字幕一区二区三区不卡在线| 国产调教视频一区| 日韩精品成人一区二区在线| 成人免费看视频| 欧美大胆人体bbbb| 亚洲大片精品永久免费| 成人av免费网站| 精品999久久久| 天天综合日日夜夜精品| 91麻豆国产香蕉久久精品| 久久久久国产精品麻豆| 奇米四色…亚洲| 欧美卡1卡2卡| 亚洲图片有声小说| 色呦呦日韩精品| 成人欧美一区二区三区黑人麻豆| 久久99精品久久久久| 8v天堂国产在线一区二区| 亚洲猫色日本管| 99在线热播精品免费| 国产清纯白嫩初高生在线观看91 | 日韩女优毛片在线| 日韩高清不卡一区二区| 欧美主播一区二区三区美女| 中文字幕一区二区三区四区不卡| 国产v综合v亚洲欧| 中文无字幕一区二区三区| 国产一区不卡精品| 伊人婷婷欧美激情| 91一区二区三区在线播放| 成人免费在线视频观看| 色综合久久88色综合天天| 亚洲精品国产高清久久伦理二区| 99re成人精品视频| 亚洲私人影院在线观看| 色999日韩国产欧美一区二区| 亚洲另类在线制服丝袜| 日本福利一区二区| 五月婷婷另类国产| 欧美大片日本大片免费观看| 国产露脸91国语对白| 国产精品人人做人人爽人人添| 成人免费视频视频| 亚洲影院久久精品| 制服丝袜中文字幕亚洲| 久久精品久久99精品久久| 久久精品欧美一区二区三区麻豆| 高清不卡在线观看| 亚洲精品ww久久久久久p站 | 懂色一区二区三区免费观看 | 亚洲理论在线观看| 欧美日韩免费不卡视频一区二区三区| 亚洲第一久久影院| 欧美成人vps| av在线综合网| 三级影片在线观看欧美日韩一区二区 | 亚洲国产精品国自产拍av| 99国产精品国产精品毛片| 一区二区免费视频| 欧美mv日韩mv亚洲| caoporm超碰国产精品| 亚洲一区二区三区小说| 日韩丝袜美女视频| av亚洲产国偷v产偷v自拍| 亚洲精品国产无天堂网2021| 91精品国产综合久久婷婷香蕉| 国产成人综合亚洲91猫咪| 亚洲另类在线视频| 久久久久久麻豆| 欧美色窝79yyyycom| 国产精品1区2区| 亚洲成a天堂v人片| 欧美高清在线一区二区| 777亚洲妇女| 不卡视频免费播放| 麻豆精品视频在线观看免费| 亚洲人一二三区| 国产三级欧美三级日产三级99| 91国在线观看| 懂色av一区二区三区免费观看| 偷拍一区二区三区| 亚洲欧美日韩精品久久久久| 精品久久久久久久久久久久包黑料 | 国产尤物一区二区| 五月激情综合色| 亚洲欧美另类图片小说| wwww国产精品欧美| 欧美一区二区视频在线观看 | 99天天综合性| 狠狠网亚洲精品| 蜜臀av一区二区在线免费观看 | 欧美性色黄大片| 成人性视频免费网站| 激情综合色播激情啊| 天天射综合影视| 一区二区三区四区av| 国产精品久久久爽爽爽麻豆色哟哟| 日韩色在线观看| 欧美日韩www| 欧美日韩一区二区三区四区 | 国产成人av网站| 精品在线免费视频| 日欧美一区二区| 日韩av不卡在线观看| 亚洲国产成人91porn| 亚洲一区免费观看| 一区二区三区免费观看| 亚洲欧美色综合| 一区二区三区不卡视频在线观看| 亚洲美女精品一区| 亚洲精品国产第一综合99久久| 亚洲人成网站精品片在线观看| 中文字幕中文在线不卡住| 国产精品婷婷午夜在线观看| 欧美激情中文不卡| 成人免费小视频| 一区二区三区四区中文字幕| 一区二区三区 在线观看视频| 亚洲伊人色欲综合网| 亚洲成人久久影院| 五月综合激情日本mⅴ| 蜜桃视频一区二区三区在线观看| 日本成人中文字幕在线视频 | 三级一区在线视频先锋 | 日韩欧美中文字幕精品| 精品国产凹凸成av人网站| 久久综合色鬼综合色| 国产日本欧洲亚洲| 亚洲三级在线免费观看| 亚洲国产中文字幕| 欧美bbbbb| 国产成人av电影在线观看| 91亚洲国产成人精品一区二区三| 色综合天天综合网国产成人综合天| 91官网在线免费观看| 欧美色综合网站| 亚洲精品一区二区精华| 欧美国产1区2区| 亚洲成人精品一区二区| 精品一区二区三区日韩| 成人黄色一级视频| 欧美日韩国产综合视频在线观看| 日韩一区二区三区三四区视频在线观看| 精品美女被调教视频大全网站| 国产精品欧美综合在线| 亚洲成a人片在线观看中文| 精品一区二区精品| 91久久精品一区二区二区| 日韩一区二区电影网| 国产精品你懂的在线欣赏| 日韩精品一级中文字幕精品视频免费观看| 九九九精品视频| 欧美网站一区二区| 国产欧美一区二区三区鸳鸯浴| 一区二区三区不卡在线观看| 久久99精品国产麻豆不卡| 91麻豆.com| 337p日本欧洲亚洲大胆精品| 亚洲欧美日韩在线| 国产一区二区三区四区在线观看| 在线视频观看一区| 久久久久久久久久久黄色| 亚洲高清在线视频| 成人a免费在线看| 欧美成人vps| 午夜精品一区二区三区三上悠亚| 大尺度一区二区| 欧美成人性福生活免费看| 一区二区三区波多野结衣在线观看| 国产精品一区免费在线观看| 91精品国产欧美日韩| 亚洲免费观看高清在线观看| 国产成a人亚洲| 欧美精品一区二区三| 午夜精品成人在线| 色激情天天射综合网| 欧美激情中文字幕一区二区| 久久99久久精品| 777奇米四色成人影色区| 一区二区三区波多野结衣在线观看 | 91色九色蝌蚪| 国产欧美一区二区三区网站| 久久99久久99| 日韩一级欧美一级| 亚洲国产中文字幕| 欧美性猛片aaaaaaa做受| 1区2区3区精品视频| 成人黄色片在线观看| 日本一区免费视频| 国产乱码精品一区二区三区忘忧草 | 国产人成一区二区三区影院| 国产麻豆精品95视频| 精品国产乱码久久久久久夜甘婷婷| 日韩电影一二三区| 欧美日韩国产综合视频在线观看 | 欧美无人高清视频在线观看| 日韩理论片一区二区| 99久久久免费精品国产一区二区| 国产精品色眯眯|