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

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

?? gridbtncellbase.h

?? 是一個(gè)GridTree的控件
?? H
字號(hào):
/*****************************************************************************
    COPYRIGHT (C) 2000, Ken Bertelson <kenbertelson@hotmail.com>


*****************************************************************************/
#if !defined(AFX_GridBtnCellBase_H__97838AF2_EBD9_11D3_B75D_00C04F6A7AE6__INCLUDED_)
#define AFX_GridBtnCellBase_H__97838AF2_EBD9_11D3_B75D_00C04F6A7AE6__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "GridCell.h"
#include "BtnDataBase.h"

class _GTC_EXT_CLASS CGridBtnCellBase : public CGridCellBase
{
    friend class CGridTreeBtnCell;
    DECLARE_DYNCREATE(CGridBtnCellBase)

// Construction/Destruction
public:
    CGridBtnCellBase();
    virtual ~CGridBtnCellBase();

    void SetBtnDataBase( CBtnDataBase* pBtnDataBase)
        {
            ASSERT( pBtnDataBase);
            m_pBtnDataBase = pBtnDataBase;
        }
    CBtnDataBase* GetBtnDataBase() { return m_pBtnDataBase; }

public:
    // structs used when manipulating buttons
    typedef enum
    {
        CTL_ALIGN_CENTER,
        CTL_ALIGN_LEFT,
        CTL_ALIGN_RIGHT,

        CTL_ALIGN_FENCE     // ** don't delete or remove from last in list
    }   CTL_ALIGN;  // how is DrawFrameControl() aligned?

    typedef struct
    {
        int iWidth;             // Fixed width of button; if 0, size to cell width
        short sState;           // e.g. DFCS_PUSHED | DFCS_BUTTONCHECK
        unsigned char ucIsMbrRadioGrp : 1;  // T=btn is member of a radio group
        unsigned char ucAlign : 7;  // how control image is aligned
        unsigned char ucType;   // type of control to draw  e.g. DFC_BUTTON

    }   STRUCT_DRAWCTL; // used with win32's DrawFrameControl() to place an image
                        //  of a windows control within a cell

    BOOL SetupBtns(  int aiWhich,        // zero-based index of image to draw
                     UINT auiType,       // type of frame control to draw e.g. DFC_BUTTON
                     UINT auiState,      // like DrawFrameControl()'s nState  e.g. DFCS_BUTTONCHECK
                     CGridBtnCellBase::CTL_ALIGN aAlign,   // horizontal alignment of control image
                     int aiWidth,        // fixed width of control or 0 for size-to-fit
                     BOOL abIsMbrRadioGrp,   // T=btn is member of a radio group
                     const char* apszText);   // Text to insert centered in button; if NULL no text
    // returns:  success / failure


// for drawing things like buttons and check marks within a cell
//  you can have more than one control per cell
public:
    virtual short GetDrawCtlNbr() { return m_sNbrDrawCtls; }
    virtual short GetLastCtlClicked() { return m_sLastCtlClicked; }

    virtual unsigned char GetDrawCtlNbrMax() { return 0; }

    virtual UINT GetDrawCtlType( int /* aiWhich */)
        { ASSERT( FALSE); return 0; }

    virtual void SetDrawCtlType( int /* aiWhich */, UINT /* auiType */)
        { ASSERT( FALSE); }

    virtual UINT GetDrawCtlState( int /* aiWhich */)
        { ASSERT( FALSE); return 0; }

    virtual void SetDrawCtlState( int /* aiWhich */, UINT /* auiState */)
        { ASSERT( FALSE); }

    virtual int GetDrawCtlWidth( int /* aiWhich */)
        { ASSERT( FALSE); return -1; }

    virtual void SetDrawCtlWidth( int /* aiWhich */, int /* aiWidth */)
        { ASSERT( FALSE); }

    virtual CTL_ALIGN GetDrawCtlAlign( int /* aiWhich */)
        { ASSERT( FALSE); return CTL_ALIGN_FENCE; }

    virtual void SetDrawCtlAlign( int /* aiWhich */, CTL_ALIGN /* aucAlign */)
        { ASSERT( FALSE); }

    virtual const char* GetDrawCtlBtnText( int /* aiWhich */)
        { ASSERT( FALSE); return NULL; }

    virtual void SetDrawCtlBtnText( int /* aiWhich */, const char* /* apszText */)
        { ASSERT( FALSE); }

    virtual BOOL GetDrawCtlIsMbrRadioGrp( int /* aiWhich */)
        { ASSERT( FALSE); return FALSE; }

    virtual void SetDrawCtlIsMbrRadioGrp( int /* aiWhich */, BOOL /* abOn */)
        { ASSERT( FALSE); }


// base Attributes
public:
    virtual void SetDrawCtlNbr( short asNbr)
        { ASSERT( (int)asNbr <= GetDrawCtlNbrMax());
          m_sNbrDrawCtls = asNbr; }

    virtual void SetText(LPCTSTR szText)
        { if( m_pBtnDataBase) m_pBtnDataBase->SetText( m_iRow, m_iCol, szText); }

    virtual void SetImage(int nImage)
        { if( m_pBtnDataBase) m_pBtnDataBase->SetImage(m_iRow, m_iCol, nImage); }

    virtual void SetData(LPARAM lParam)
        { if( m_pBtnDataBase) m_pBtnDataBase->SetData(m_iRow, m_iCol, lParam); }

    virtual void SetFormat(DWORD nFormat)
        { if( m_pBtnDataBase) m_pBtnDataBase->SetFormat(m_iRow, m_iCol, nFormat); }

    virtual void SetTextClr(COLORREF clr)
        { if( m_pBtnDataBase) m_pBtnDataBase->SetTextClr(m_iRow, m_iCol, clr); }

    virtual void SetBackClr(COLORREF clr)
        { if( m_pBtnDataBase) m_pBtnDataBase->SetBackClr(m_iRow, m_iCol, clr); }

    virtual void SetFont(const LOGFONT* plf)
        { if( m_pBtnDataBase) m_pBtnDataBase->SetFont(m_iRow, m_iCol, plf); }

    virtual void SetMargin( UINT nMargin)
        { if( m_pBtnDataBase) m_pBtnDataBase->SetMargin(m_iRow, m_iCol, nMargin); }

    virtual void SetCoords( int nRow, int nCol) { m_iRow = nRow; m_iCol = nCol; }
    virtual CPoint GetCoords() { return CPoint( m_iCol, m_iRow); }

    virtual void SetGrid(CGridCtrl* pGrid)
        { if( m_pBtnDataBase) m_pBtnDataBase->SetGrid( pGrid); }

    virtual void SetEditWnd(CWnd* pEditWnd)
        { if( m_pBtnDataBase) m_pBtnDataBase->SetEditWnd(pEditWnd); }


    virtual LPCTSTR  GetText()
        {
            if( m_pBtnDataBase)
                return m_pBtnDataBase->GetText(m_iRow, m_iCol);
            return NULL;
        }

    virtual LPCTSTR  GetTipText();// may override TitleTip return

    virtual int GetImage()
        {
            if( m_pBtnDataBase)
                return m_pBtnDataBase->GetImage(m_iRow, m_iCol);
            return -1;
        }

    virtual LPARAM GetData()
        {
            if( m_pBtnDataBase)
                return m_pBtnDataBase->GetData(m_iRow, m_iCol);
            return 0;
        }

    virtual DWORD GetFormat()
        {
            if( m_pBtnDataBase)
                return m_pBtnDataBase->GetFormat(m_iRow, m_iCol);
            return 0;
        }

    virtual COLORREF GetTextClr()
        {
            if( m_pBtnDataBase)
                return m_pBtnDataBase->GetTextClr(m_iRow, m_iCol);
            return CLR_DEFAULT;
        }

    virtual COLORREF GetBackClr()
        {
            if( m_pBtnDataBase)
                return m_pBtnDataBase->GetBackClr(m_iRow, m_iCol);
            return CLR_DEFAULT;
        }

    virtual const LOGFONT* GetFont()
        {
            if( m_pBtnDataBase)
                return m_pBtnDataBase->GetFont(m_iRow, m_iCol);
            return NULL;
        }

    virtual UINT GetMargin()
        {
            if( m_pBtnDataBase)
                return m_pBtnDataBase->GetMargin(m_iRow, m_iCol);
            return 0;
        }

    virtual CGridCtrl* GetGrid()
        {
            if( m_pBtnDataBase)
                return m_pBtnDataBase->GetGrid();
            return NULL;
        }

    virtual CWnd* GetEditWnd()
        {
            if( m_pBtnDataBase)
                return m_pBtnDataBase->GetEditWnd();
            return NULL;
        }


    virtual void Reset();
    virtual BOOL IsEditing() { return m_ucEditing; }

    virtual void operator=(CGridCellBase& cell)
    {
        CGridCellBase::operator=( cell);
    }

// editing cells
public:
    virtual BOOL Draw(CDC* pDC, int nRow, int nCol, CRect rect, BOOL bEraseBkgnd = TRUE);
    BOOL DrawBtnCell(CDC* pDC, int nRow, int nCol, CRect* prect, BOOL bEraseBkgnd);
    virtual BOOL GetTextRect( LPRECT pRect);    // i/o:  i=dims of cell rect; o=dims of text rect
    virtual BOOL GetTipTextRect( LPRECT pRect); // may override for btns, etc.
    virtual CSize GetCellExtent(CDC* pDC);

    // override the following
    virtual BOOL PrintCell(CDC* pDC, int nRow, int nCol, CRect rect);

// editing cells
public:
    virtual BOOL Edit(  int nRow, int nCol, CRect rect, CPoint point,
                        UINT nID, UINT nChar);
    virtual void EndEdit();
protected:
    virtual void OnEndEdit();

protected:
    virtual void OnClick( CPoint PointCellRelative);
    virtual void OnClickDown( CPoint PointCellRelative);
    virtual void OnRClick( CPoint PointCellRelative);
    virtual void OnDblClick( CPoint PointCellRelative);

protected:
    BOOL ClickedCellCtl(  UINT uMsg,      // Command that invoked.  e.g. WM_LBUTTONDOWN
                          int aiWhich);   // zero-based index of image to draw
    // returns:  T=redraw occurred / F=no redraw

    BOOL ProcessCtlClick(   UINT uMsg,              // Command that invoked.  e.g. WM_LBUTTONDOWN
                            const CPoint& arPoint); // point to check for hit
    // returns:  T=hit a control / F=no control hit

    int RelPointInCtl(    const CPoint& arPoint);  // Relative point coords
    // returns:  Index of control that this point is within bounds of or -1 if no control matches

    BOOL CalcDrawCtlRects(CRect* apRect,    // returns:  CRects with coordinates
                                            //  last entry has optional leftover rect
                                            //  available for text, etc.
                  int aiNbrRectEntries,     // nbr of Rects in above array
                  const CRect& arRectCell); // cell rectangle to work with

    BOOL HasCellText();
    // returns:  F=auto-size buttons, only

    int HotKeyBtnMatch( char acHotKey); // hot key character
    // returns:  index of button or -1 if no hot key matches

protected:
    short    m_sLastCtlClicked; // what control was last clicked?
    short    m_sNbrDrawCtls;// how many controls?

    int      m_iRow;        // Each cell needs to know position
    int      m_iCol;

    UCHAR    m_ucEditing;   // Cell being edited?

    CBtnDataBase* m_pBtnDataBase;   // contains data common to this instance of the grid as well
                                    //  as a reference to the grid, too

    static CString m_strTipText;    // may have special title tip - note only 1 tip at a time
};


#endif // !defined(AFX_GridBtnCellBase_H__97838AF2_EBD9_11D3_B75D_00C04F6A7AE6__INCLUDED_)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国女主播一区二区三区| 日本道在线观看一区二区| 美女尤物国产一区| 性感美女极品91精品| 一区二区三区自拍| 一区二区三区资源| 亚洲一级二级在线| 亚洲电影你懂得| 偷拍与自拍一区| 亚洲成av人片一区二区三区| 亚洲电影第三页| 青青草国产精品97视觉盛宴| 日韩成人av影视| 久久国产福利国产秒拍| 麻豆国产欧美一区二区三区| 国内精品在线播放| 国产九色sp调教91| 成人免费视频网站在线观看| 成人av网址在线观看| 91久久精品日日躁夜夜躁欧美| 色婷婷国产精品| 欧美精品 日韩| 精品第一国产综合精品aⅴ| 久久久久久久久久久久电影 | 91视频你懂的| 91国偷自产一区二区使用方法| 欧美熟乱第一页| 制服丝袜av成人在线看| 欧美成人三级在线| 中文字幕国产精品一区二区| 亚洲同性同志一二三专区| 亚洲自拍另类综合| 免费xxxx性欧美18vr| 国产精品1024久久| 欧美在线影院一区二区| 欧美一卡二卡三卡| 国产精品女上位| 亚洲第一福利视频在线| 黄页网站大全一区二区| 国产sm精品调教视频网站| 色噜噜久久综合| 日韩欧美的一区二区| 国产视频亚洲色图| 亚洲图片欧美色图| 国产一区二区成人久久免费影院| 成人av在线观| 5858s免费视频成人| 国产亚洲美州欧州综合国| 一区二区三区不卡在线观看| 久久国产精品第一页| 91亚洲男人天堂| 日韩一区二区三区四区| 中文在线免费一区三区高中清不卡| 亚洲卡通欧美制服中文| 免费观看在线色综合| 91亚洲精品久久久蜜桃| 日韩一级二级三级| 一区二区三区日韩精品| 精一区二区三区| 欧洲一区二区三区免费视频| 久久久青草青青国产亚洲免观| 亚洲欧美另类图片小说| 国产一区二区导航在线播放| 欧美日韩国产成人在线免费| 国产亲近乱来精品视频 | 欧美午夜视频网站| 国产喷白浆一区二区三区| 一区二区三区日韩欧美精品| 国产精品自在欧美一区| 欧美日韩dvd在线观看| 国产精品私人自拍| 视频一区在线视频| 91首页免费视频| 国产欧美一区视频| 乱中年女人伦av一区二区| 在线免费亚洲电影| 中文字幕精品一区二区精品绿巨人| 老司机精品视频导航| 欧美日韩精品一区视频| 亚洲精品久久嫩草网站秘色| 国产成人鲁色资源国产91色综| 日韩精品一区二区三区四区视频| 亚洲国产日产av| 色婷婷综合视频在线观看| 久久久精品2019中文字幕之3| 免费观看91视频大全| 欧美日韩二区三区| 亚洲精品久久嫩草网站秘色| www.一区二区| 国产精品免费aⅴ片在线观看| 国产寡妇亲子伦一区二区| 精品国精品自拍自在线| 奇米精品一区二区三区在线观看| 欧美在线一区二区| 亚洲一区在线视频| 91国偷自产一区二区三区成为亚洲经典 | 国产福利精品导航| 久久在线观看免费| 久久av中文字幕片| 久久综合成人精品亚洲另类欧美 | 91精品免费在线| 亚洲福利视频三区| 欧美日韩一区视频| 亚洲小少妇裸体bbw| 在线观看三级视频欧美| 一区二区三区视频在线看| 在线免费观看不卡av| 一片黄亚洲嫩模| 91福利视频久久久久| 亚洲成人综合在线| 4438x成人网最大色成网站| 丝袜亚洲另类欧美| 日韩欧美资源站| 精品亚洲porn| 久久亚洲私人国产精品va媚药| 国产精品中文字幕欧美| 国产欧美日韩中文久久| 99视频在线观看一区三区| 亚洲日本青草视频在线怡红院| 在线一区二区视频| 午夜欧美视频在线观看| 欧美一二三四在线| 久久99精品国产麻豆不卡| 国产婷婷色一区二区三区在线| 成人精品免费视频| 日韩欧美久久久| 日韩午夜在线观看| 久久综合久久综合亚洲| 亚洲精品一区二区在线观看| 成人综合在线网站| 亚洲欧美区自拍先锋| 3atv一区二区三区| 国产91在线|亚洲| 亚洲综合在线第一页| 亚洲私人黄色宅男| 偷偷要91色婷婷| 国产精品一线二线三线精华| 94-欧美-setu| 久久久亚洲午夜电影| 一区二区三区四区中文字幕| 六月丁香婷婷色狠狠久久| 在线精品视频一区二区三四| 国产欧美一区在线| 久久99精品久久久久久| 欧美va日韩va| 国产一区二区美女| 久久蜜桃一区二区| 精品午夜一区二区三区在线观看| 欧美大片一区二区| 亚洲成av人在线观看| 国产尤物一区二区| 色999日韩国产欧美一区二区| 日韩一区二区在线看| 亚洲欧美在线视频| 亚洲一区二区三区在线看| 国产美女在线精品| 欧美性色欧美a在线播放| 久久久不卡影院| 蜜臀av一区二区| 欧美网站一区二区| 亚洲欧洲日产国产综合网| 亚洲第一成年网| 91免费看`日韩一区二区| 欧美年轻男男videosbes| 久久男人中文字幕资源站| 成人动漫一区二区在线| 国产日产欧美一区二区视频| 日韩美女视频在线| 1区2区3区欧美| 丰满放荡岳乱妇91ww| 国产精品乱码人人做人人爱 | 国产精品一卡二卡在线观看| 国产iv一区二区三区| 在线日韩一区二区| 久久久亚洲精华液精华液精华液| 日韩伦理免费电影| 韩国av一区二区三区四区| 欧美日韩激情在线| 一区二区三区资源| 成人免费毛片aaaaa**| 欧美一区二区成人| 一区二区免费在线| 色妞www精品视频| 国产精品情趣视频| 日日夜夜精品视频天天综合网| 不卡的电视剧免费网站有什么| 久久婷婷国产综合精品青草| 一区二区视频免费在线观看| 91老司机福利 在线| 亚洲欧美色图小说| 91精品国产综合久久精品性色| 久久99久久久久| 经典三级视频一区| 国产午夜亚洲精品羞羞网站| 色诱亚洲精品久久久久久| 日韩电影在线观看网站| 日韩精品亚洲专区| 亚洲一区二区视频| 亚洲人妖av一区二区| 中文字幕在线不卡|