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

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

?? cpi_interfacepart_commandbutton.c

?? < VC++視頻音頻開發>> 這本書的源碼
?? C
字號:

////////////////////////////////////////////////////////////////////////////////



#include "stdafx.h"
#include "globals.h"
#include "CPI_InterfacePart.h"


////////////////////////////////////////////////////////////////////////////////
//
typedef struct _CPs_IPCommandButton
{
    CPs_Image_WithState* m_pStateImage;
    CPe_ImageState m_enCurrentState;
    wp_Verb m_pfnVerb;
    BOOL m_bDown;

} CPs_IPCommandButton;
//
////////////////////////////////////////////////////////////////////////////////



void IPCB_Destroy_PrivateData(CP_HINTERFACEPART hPart);
void IPCB_Draw(CP_HINTERFACEPART hPart, CPs_DrawContext* pContext);
void IPCB_onMouseIn(CP_HINTERFACEPART hPart);
void IPCB_onMouseOut(CP_HINTERFACEPART hPart);
void IPCB_onMouseButton_LDown(CP_HINTERFACEPART hPart, const POINTS ptMouse);
void IPCB_onMouseButton_LUp(CP_HINTERFACEPART hPart, const POINTS ptMouse);
////////////////////////////////////////////////////////////////////////////////
//
//
//
CP_HINTERFACEPART IP_Create_CommandButton(wp_Verb pfnVerb, CPs_Image_WithState* pImageWS)
{
    CPs_InterfacePart* pNewPart;
    CPs_IPCommandButton* pCustomData;

    // Setup custom data
    pCustomData = (CPs_IPCommandButton*)malloc(sizeof(*pCustomData));
    pCustomData->m_pStateImage = pImageWS;
    pCustomData->m_enCurrentState = igsQuiescent;
    pCustomData->m_pfnVerb = pfnVerb;
    pCustomData->m_bDown = FALSE;

    // Create new part and setup callbacks
    pNewPart = (CPs_InterfacePart*)malloc(sizeof(*pNewPart));
    memset(pNewPart, 0, sizeof(*pNewPart));
    pNewPart->Destroy_PrivateData = IPCB_Destroy_PrivateData;
    pNewPart->Draw = IPCB_Draw;
    pNewPart->onMouseIn = IPCB_onMouseIn;
    pNewPart->onMouseOut = IPCB_onMouseOut;
    pNewPart->onMouseButton_LDown = IPCB_onMouseButton_LDown;
    pNewPart->onMouseButton_LUp = IPCB_onMouseButton_LUp;
    pNewPart->m_pPrivateData = pCustomData;

    return pNewPart;
}
//
//
//
void IPCB_Draw(CP_HINTERFACEPART hPart, CPs_DrawContext* pContext)
{
    CPs_InterfacePart* pIP;
    CPs_IPCommandButton* pIPCB;

    // Init
    pIP = (CPs_InterfacePart*)hPart;
    CP_CHECKOBJECT(pIP);
    pIPCB = (CPs_IPCommandButton*)pIP->m_pPrivateData;
    CP_CHECKOBJECT(pIPCB);

    // Perform drawing
    CPIG_DrawStateImage(pContext,
                        pIP->m_rLocation.left, pIP->m_rLocation.top,
                        pIPCB->m_pStateImage, pIPCB->m_enCurrentState);
}
//
//
//
void IPCB_Destroy_PrivateData(CP_HINTERFACEPART hPart)
{
    CPs_InterfacePart* pIP;
    CPs_IPCommandButton* pIPCB;

    // Init
    pIP = (CPs_InterfacePart*)hPart;
    CP_CHECKOBJECT(pIP);
    pIPCB = (CPs_IPCommandButton*)pIP->m_pPrivateData;
    CP_CHECKOBJECT(pIPCB);

    free(pIPCB);
}
//
//
//
void IPCB_onMouseIn(CP_HINTERFACEPART hPart)
{
    CPs_InterfacePart* pIP;
    CPs_IPCommandButton* pIPCB;

    // Init
    pIP = (CPs_InterfacePart*)hPart;
    CP_CHECKOBJECT(pIP);
    pIPCB = (CPs_IPCommandButton*)pIP->m_pPrivateData;
    CP_CHECKOBJECT(pIPCB);

    // Handler
    if(pIPCB->m_bDown)
        pIPCB->m_enCurrentState = igsActive;
    else
        pIPCB->m_enCurrentState = igsFloatActive;
    IP_Invalidate(hPart);
}
//
//
//
void IPCB_onMouseOut(CP_HINTERFACEPART hPart)
{
    CPs_InterfacePart* pIP;
    CPs_IPCommandButton* pIPCB;

    // Init
    pIP = (CPs_InterfacePart*)hPart;
    CP_CHECKOBJECT(pIP);
    pIPCB = (CPs_IPCommandButton*)pIP->m_pPrivateData;
    CP_CHECKOBJECT(pIPCB);

    // Handler
    pIPCB->m_enCurrentState = igsQuiescent;
    IP_Invalidate(hPart);
}
//
//
//
void IPCB_onMouseButton_LDown(CP_HINTERFACEPART hPart, const POINTS ptMouse)
{
    CPs_InterfacePart* pIP;
    CPs_IPCommandButton* pIPCB;

    // Init
    pIP = (CPs_InterfacePart*)hPart;
    CP_CHECKOBJECT(pIP);
    pIPCB = (CPs_IPCommandButton*)pIP->m_pPrivateData;
    CP_CHECKOBJECT(pIPCB);

    // Handler
    pIPCB->m_bDown = TRUE;
    if(pIPCB->m_enCurrentState == igsFloatActive)
        pIPCB->m_enCurrentState = igsActive;
    IP_Invalidate(hPart);
}
//
//
//
void IPCB_onMouseButton_LUp(CP_HINTERFACEPART hPart, const POINTS ptMouse)
{
    CPs_InterfacePart* pIP;
    CPs_IPCommandButton* pIPCB;

    // Init
    pIP = (CPs_InterfacePart*)hPart;
    CP_CHECKOBJECT(pIP);
    pIPCB = (CPs_IPCommandButton*)pIP->m_pPrivateData;
    CP_CHECKOBJECT(pIPCB);

    // Handler
    pIPCB->m_bDown = FALSE;
    if(pIPCB->m_enCurrentState == igsActive)
    {
        // Mouse is still inside control
        pIPCB->m_enCurrentState = igsFloatActive;
        if(pIPCB->m_pfnVerb)
            pIPCB->m_pfnVerb(vaDoVerb, NULL);
    }
    IP_Invalidate(hPart);
}
//
//
//

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人一道本在线| 精品国产1区2区3区| 亚洲第一成年网| 欧美人狂配大交3d怪物一区| 九九久久精品视频| 国产亚洲精品中文字幕| 欧美色倩网站大全免费| 国产伦精一区二区三区| 国产精品三级av在线播放| 欧美日韩成人一区| 成人午夜电影网站| 激情综合色丁香一区二区| 一区二区三区成人| 精品国产99国产精品| 色综合久久久久综合体桃花网| 麻豆精品视频在线观看免费| 亚洲女子a中天字幕| 欧美国产日产图区| 欧美成人午夜电影| 欧美喷潮久久久xxxxx| 99亚偷拍自图区亚洲| 国产做a爰片久久毛片| 蜜臀久久99精品久久久画质超高清 | 色悠悠亚洲一区二区| 91理论电影在线观看| 91色乱码一区二区三区| 色综合久久久久综合体| 欧美专区亚洲专区| 欧美日产国产精品| 欧美一区二区不卡视频| 久久久久综合网| 亚洲视频一二区| 亚洲人成在线播放网站岛国| 亚洲国产cao| 国产精品伊人色| 91国模大尺度私拍在线视频| 欧美精品丝袜中出| 国产午夜精品久久| 亚洲成年人影院| 精品午夜久久福利影院| 99r国产精品| 日韩精品一区二区在线观看| 国产午夜精品福利| 一区二区三区在线免费播放| 一区二区三区精品在线| 免费在线观看精品| 在线观看视频一区二区| 国产欧美在线观看一区| 亚洲丶国产丶欧美一区二区三区| 美女在线观看视频一区二区| 在线免费观看视频一区| 久久久久久久久一| 蜜桃久久av一区| 欧美一区国产二区| 午夜精品免费在线观看| 精品视频色一区| 亚洲综合区在线| 色网综合在线观看| 亚洲激情在线播放| 色999日韩国产欧美一区二区| 国产亚洲欧美在线| 国产精品99久久久久久久vr| www国产成人| 国产·精品毛片| 国产目拍亚洲精品99久久精品| 国产在线不卡视频| 久久久天堂av| 不卡av在线免费观看| 一区二区在线观看视频| 欧美日韩国产经典色站一区二区三区| 婷婷丁香激情综合| 日韩影院免费视频| 欧美视频在线播放| 成人激情校园春色| 一级特黄大欧美久久久| 91蜜桃婷婷狠狠久久综合9色| 国产精品国产三级国产普通话99| 国产做a爰片久久毛片| 2024国产精品视频| 国产一区二区三区免费看| 久久女同精品一区二区| 国产成人免费视频精品含羞草妖精| 亚洲精品一区二区三区蜜桃下载| 国产精品一区二区三区99| 亚洲精品乱码久久久久久久久 | 国产.欧美.日韩| 亚洲中国最大av网站| 久久久影院官网| 欧美三级电影网| 国产91精品免费| 国产一区二区在线免费观看| 麻豆国产精品777777在线| 亚洲成人777| 欧美一区二区在线看| 亚洲国产精品久久久男人的天堂| 国产欧美日韩综合| 欧美乱妇一区二区三区不卡视频| 国产一区二区美女| 亚洲美女屁股眼交3| 性做久久久久久久久| 日韩二区三区在线观看| 日韩av网站免费在线| 久久99精品久久久久久国产越南| 午夜精品福利在线| 亚洲国产乱码最新视频| 国产欧美一区二区三区鸳鸯浴| 欧美在线免费视屏| 成人免费高清视频| 亚洲1区2区3区视频| 欧美精品tushy高清| 蜜桃视频第一区免费观看| 精品国产免费人成电影在线观看四季 | 99久免费精品视频在线观看 | 国产精品女主播av| 国产一区美女在线| 亚洲成人久久影院| 91麻豆123| 美女在线视频一区| 国产精品久久久久精k8| 99久久综合国产精品| 3atv在线一区二区三区| 青椒成人免费视频| 亚洲桃色在线一区| 欧美日韩国产乱码电影| 国产毛片精品视频| 国内精品国产成人国产三级粉色| av在线不卡免费看| 久久蜜臀中文字幕| 日日夜夜免费精品| 欧美色视频一区| 亚洲在线观看免费| 精品国产一区二区国模嫣然| 久久精品这里都是精品| 一二三区精品福利视频| 久久国产剧场电影| 欧美卡1卡2卡| 亚洲视频在线一区| 一区二区三区精品在线观看| 亚洲bdsm女犯bdsm网站| 激情图区综合网| 色狠狠色噜噜噜综合网| 欧美又粗又大又爽| 91国产免费观看| 欧美唯美清纯偷拍| 色欧美88888久久久久久影院| 91精品中文字幕一区二区三区| 欧美一二三区精品| 亚洲一级二级三级在线免费观看| va亚洲va日韩不卡在线观看| 欧美成va人片在线观看| 亚洲在线视频免费观看| caoporm超碰国产精品| 精品久久久久久久久久久久久久久 | 制服丝袜一区二区三区| 一区二区三区在线免费| 色综合久久中文综合久久牛| 国产精品久久久久三级| av色综合久久天堂av综合| 国产精品久久久久久一区二区三区| 国内精品伊人久久久久影院对白| 欧美视频中文一区二区三区在线观看 | 午夜视频在线观看一区二区三区| 精品一区在线看| 色哟哟国产精品免费观看| 国产精品久久久一本精品| 国产99久久久国产精品免费看| 亚洲国产wwwccc36天堂| 欧美三级中文字幕在线观看| 亚洲三级电影网站| 免费高清在线一区| 欧美成人女星排名| 美日韩一区二区| 久久嫩草精品久久久久| 国产一区二区在线看| 欧美在线一区二区| 亚洲国产精品久久人人爱| 在线综合视频播放| 粉嫩av一区二区三区粉嫩| 日韩美女啊v在线免费观看| 在线播放日韩导航| 懂色av一区二区三区蜜臀| 亚洲电影你懂得| 国产欧美一区二区精品久导航| 91官网在线观看| 国产精品亚洲午夜一区二区三区 | 亚洲视频在线观看三级| 色悠久久久久综合欧美99| 蜜桃精品在线观看| 最好看的中文字幕久久| 国产欧美精品国产国产专区| 555夜色666亚洲国产免| 欧美伊人久久久久久久久影院| 国产高清亚洲一区| 国产真实乱对白精彩久久| 日韩影院精彩在线| 日本最新不卡在线| 香蕉av福利精品导航| 亚洲超碰精品一区二区| 日韩成人免费电影| 同产精品九九九|