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

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

?? dxutgui.h

?? VC中使用C#作為腳本引擎編程
?? H
?? 第 1 頁 / 共 4 頁
字號:
class CDXUTScrollBar : public CDXUTControl
{
public:
    CDXUTScrollBar( CDXUTDialog *pDialog = NULL );
    virtual ~CDXUTScrollBar();

    virtual bool    HandleKeyboard( UINT uMsg, WPARAM wParam, LPARAM lParam );
    virtual bool    HandleMouse( UINT uMsg, POINT pt, WPARAM wParam, LPARAM lParam );
    virtual bool    MsgProc( UINT uMsg, WPARAM wParam, LPARAM lParam );

    virtual void    Render( IDirect3DDevice9* pd3dDevice, float fElapsedTime );
    virtual void    UpdateRects();

    void SetTrackRange( int nStart, int nEnd );
    int GetTrackPos() { return m_nPosition; }
    void SetTrackPos( int nPosition ) { m_nPosition = nPosition; Cap(); UpdateThumbRect(); }
    int GetPageSize() { return m_nPageSize; }
    void SetPageSize( int nPageSize ) { m_nPageSize = nPageSize; Cap(); UpdateThumbRect(); }

    void Scroll( int nDelta );    // Scroll by nDelta items (plus or minus)
    void ShowItem( int nIndex );  // Ensure that item nIndex is displayed, scroll if necessary

protected:
    // ARROWSTATE indicates the state of the arrow buttons.
    // CLEAR            No arrow is down.
    // CLICKED_UP       Up arrow is clicked.
    // CLICKED_DOWN     Down arrow is clicked.
    // HELD_UP          Up arrow is held down for sustained period.
    // HELD_DOWN        Down arrow is held down for sustained period.
    enum ARROWSTATE { CLEAR, CLICKED_UP, CLICKED_DOWN, HELD_UP, HELD_DOWN };

    void UpdateThumbRect();
    void Cap();  // Clips position at boundaries. Ensures it stays within legal range.

    bool m_bShowThumb;
    bool m_bDrag;
    RECT m_rcUpButton;
    RECT m_rcDownButton;
    RECT m_rcTrack;
    RECT m_rcThumb;
    int m_nPosition;  // Position of the first displayed item
    int m_nPageSize;  // How many items are displayable in one page
    int m_nStart;     // First item
    int m_nEnd;       // The index after the last item
    POINT m_LastMouse;// Last mouse position
    ARROWSTATE m_Arrow; // State of the arrows
    double m_dArrowTS;  // Timestamp of last arrow event.
};


//-----------------------------------------------------------------------------
// ListBox control
//-----------------------------------------------------------------------------
struct DXUTListBoxItem
{
    WCHAR strText[256];
    void*  pData;

    RECT  rcActive;
    bool  bSelected;
};

class CDXUTListBox : public CDXUTControl
{
public:
    CDXUTListBox( CDXUTDialog *pDialog = NULL );
    virtual ~CDXUTListBox();

    virtual HRESULT OnInit() { return m_pDialog->InitControl( &m_ScrollBar ); }
    virtual bool    CanHaveFocus() { return (m_bVisible && m_bEnabled); }
    virtual bool    HandleKeyboard( UINT uMsg, WPARAM wParam, LPARAM lParam );
    virtual bool    HandleMouse( UINT uMsg, POINT pt, WPARAM wParam, LPARAM lParam );
    virtual bool    MsgProc( UINT uMsg, WPARAM wParam, LPARAM lParam );

    virtual void    Render( IDirect3DDevice9* pd3dDevice, float fElapsedTime );
    virtual void    UpdateRects();

    DWORD GetStyle() const { return m_dwStyle; }
    int GetSize() const { return m_Items.GetSize(); }
    void SetStyle( DWORD dwStyle ) { m_dwStyle = dwStyle; }
    int  GetScrollBarWidth() const { return m_nSBWidth; }
    void SetScrollBarWidth( int nWidth ) { m_nSBWidth = nWidth; UpdateRects(); }
    void SetBorder( int nBorder, int nMargin ) { m_nBorder = nBorder; m_nMargin = nMargin; }
    HRESULT AddItem( const WCHAR *wszText, void *pData );
    HRESULT InsertItem( int nIndex, const WCHAR *wszText, void *pData );
    void RemoveItem( int nIndex );
    void RemoveItemByText( WCHAR *wszText );
    void RemoveItemByData( void *pData );
    void RemoveAllItems();

    DXUTListBoxItem *GetItem( int nIndex );
    int GetSelectedIndex( int nPreviousSelected = -1 );
    DXUTListBoxItem *GetSelectedItem( int nPreviousSelected = -1 ) { return GetItem( GetSelectedIndex( nPreviousSelected ) ); }
    void SelectItem( int nNewIndex );

    enum STYLE { MULTISELECTION = 1 };

protected:
    RECT m_rcText;      // Text rendering bound
    RECT m_rcSelection; // Selection box bound
    CDXUTScrollBar m_ScrollBar;
    int m_nSBWidth;
    int m_nBorder;
    int m_nMargin;
    int m_nTextHeight;  // Height of a single line of text
    DWORD m_dwStyle;    // List box style
    int m_nSelected;    // Index of the selected item for single selection list box
    int m_nSelStart;    // Index of the item where selection starts (for handling multi-selection)
    bool m_bDrag;       // Whether the user is dragging the mouse to select

    CGrowableArray< DXUTListBoxItem* > m_Items;
};


//-----------------------------------------------------------------------------
// ComboBox control
//-----------------------------------------------------------------------------
struct DXUTComboBoxItem
{
    WCHAR strText[256];
    void*  pData;

    RECT  rcActive;
    bool  bVisible;
};


class CDXUTComboBox : public CDXUTButton
{
public:
    CDXUTComboBox( CDXUTDialog *pDialog = NULL );
    virtual ~CDXUTComboBox();
    
    virtual void SetTextColor( D3DCOLOR Color );
    virtual HRESULT OnInit() { return m_pDialog->InitControl( &m_ScrollBar ); }

    virtual bool HandleKeyboard( UINT uMsg, WPARAM wParam, LPARAM lParam );
    virtual bool HandleMouse( UINT uMsg, POINT pt, WPARAM wParam, LPARAM lParam );
    virtual void OnHotkey();

    virtual bool CanHaveFocus() { return (m_bVisible && m_bEnabled); }
    virtual void OnFocusOut();
    virtual void Render( IDirect3DDevice9* pd3dDevice, float fElapsedTime );

    virtual void UpdateRects(); 

    HRESULT AddItem( const WCHAR* strText, void* pData );
    void    RemoveAllItems();
    void    RemoveItem( UINT index );
    bool    ContainsItem( const WCHAR* strText, UINT iStart=0 );
    int     FindItem( const WCHAR* strText, UINT iStart=0 );
    void*   GetItemData( const WCHAR* strText );
    void*   GetItemData( int nIndex );
    void    SetDropHeight( UINT nHeight ) { m_nDropHeight = nHeight; UpdateRects(); }
    int     GetScrollBarWidth() const { return m_nSBWidth; }
    void    SetScrollBarWidth( int nWidth ) { m_nSBWidth = nWidth; UpdateRects(); }

    void*   GetSelectedData();
    DXUTComboBoxItem* GetSelectedItem();

    UINT    GetNumItems() { return m_Items.GetSize(); }
    DXUTComboBoxItem* GetItem( UINT index ) { return m_Items.GetAt( index ); }

    HRESULT SetSelectedByIndex( UINT index );
    HRESULT SetSelectedByText( const WCHAR* strText );
    HRESULT SetSelectedByData( void* pData );  

protected:
    int     m_iSelected;
    int     m_iFocused;
    int     m_nDropHeight;
    CDXUTScrollBar m_ScrollBar;
    int     m_nSBWidth;

    bool    m_bOpened;

    RECT m_rcText;
    RECT m_rcButton;
    RECT m_rcDropdown;
    RECT m_rcDropdownText;

    
    CGrowableArray< DXUTComboBoxItem* > m_Items;
};


//-----------------------------------------------------------------------------
// Slider control
//-----------------------------------------------------------------------------
class CDXUTSlider : public CDXUTControl
{
public:
    CDXUTSlider( CDXUTDialog *pDialog = NULL );

    virtual BOOL ContainsPoint( POINT pt ); 
    virtual bool CanHaveFocus() { return (m_bVisible && m_bEnabled); }
    virtual bool HandleKeyboard( UINT uMsg, WPARAM wParam, LPARAM lParam );
    virtual bool HandleMouse( UINT uMsg, POINT pt, WPARAM wParam, LPARAM lParam );
    
    virtual void UpdateRects(); 

    virtual void Render( IDirect3DDevice9* pd3dDevice, float fElapsedTime );

    void SetValue( int nValue ) { SetValueInternal( nValue, false ); }
    int  GetValue() const { return m_nValue; };

    void GetRange( int &nMin, int &nMax ) const { nMin = m_nMin; nMax = m_nMax; }
    void SetRange( int nMin, int nMax );

protected:
    void SetValueInternal( int nValue, bool bFromInput );
    int  ValueFromPos( int x ); 

    int m_nValue;

    int m_nMin;
    int m_nMax;

    int m_nDragX;      // Mouse position at start of drag
    int m_nDragOffset; // Drag offset from the center of the button
    int m_nButtonX;

    bool m_bPressed;
    RECT m_rcButton;
};


//-----------------------------------------------------------------------------
// CUniBuffer class for the edit control
//-----------------------------------------------------------------------------
class CUniBuffer
{
public:
    CUniBuffer( int nInitialSize = 1 );
    ~CUniBuffer();

    static void Initialize();
    static void Uninitialize();

    int  GetBufferSize() { return m_nBufferSize; }
    bool SetBufferSize( int nSize );
    int  GetTextSize()  { return lstrlenW( m_pwszBuffer ); }
    const WCHAR* GetBuffer() { return m_pwszBuffer; }
    const WCHAR& operator[]( int n ) const { return m_pwszBuffer[n]; }
    WCHAR& operator[]( int n );
    DXUTFontNode* GetFontNode() { return m_pFontNode; }
    void SetFontNode( DXUTFontNode *pFontNode ) { m_pFontNode = pFontNode; }
    void Clear();

    bool InsertChar( int nIndex, WCHAR wChar ); // Inserts the char at specified index. If nIndex == -1, insert to the end.
    bool RemoveChar( int nIndex );  // Removes the char at specified index. If nIndex == -1, remove the last char.
    bool InsertString( int nIndex, const WCHAR *pStr, int nCount = -1 );  // Inserts the first nCount characters of the string pStr at specified index.  If nCount == -1, the entire string is inserted. If nIndex == -1, insert to the end.
    bool SetText( LPCWSTR wszText );

    // Uniscribe
    HRESULT CPtoX( int nCP, BOOL bTrail, int *pX );
    HRESULT XtoCP( int nX, int *pCP, int *pnTrail );
    void GetPriorItemPos( int nCP, int *pPrior );
    void GetNextItemPos( int nCP, int *pPrior );

private:
    HRESULT Analyse();      // Uniscribe -- Analyse() analyses the string in the buffer

    WCHAR* m_pwszBuffer;    // Buffer to hold text
    int    m_nBufferSize;   // Size of the buffer allocated, in characters

    // Uniscribe-specific
    DXUTFontNode* m_pFontNode;          // Font node for the font that this buffer uses
    bool m_bAnalyseRequired;            // True if the string has changed since last analysis.
    SCRIPT_STRING_ANALYSIS m_Analysis;  // Analysis for the current string

private:
    // Empty implementation of the Uniscribe API
    static HRESULT WINAPI Dummy_ScriptApplyDigitSubstitution( const SCRIPT_DIGITSUBSTITUTE*, SCRIPT_CONTROL*, SCRIPT_STATE* ) { return E_NOTIMPL; }
    static HRESULT WINAPI Dummy_ScriptStringAnalyse( HDC, const void *, int, int, int, DWORD, int, SCRIPT_CONTROL*, SCRIPT_STATE*, const int*, SCRIPT_TABDEF*, const BYTE*, SCRIPT_STRING_ANALYSIS* ) { return E_NOTIMPL; }
    static HRESULT WINAPI Dummy_ScriptStringCPtoX( SCRIPT_STRING_ANALYSIS, int, BOOL, int* ) { return E_NOTIMPL; }
    static HRESULT WINAPI Dummy_ScriptStringXtoCP( SCRIPT_STRING_ANALYSIS, int, int*, int* ) { return E_NOTIMPL; }
    static HRESULT WINAPI Dummy_ScriptStringFree( SCRIPT_STRING_ANALYSIS* ) { return E_NOTIMPL; }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品久久人人爱蜜臀| 久久久久久久久久久久久久久99 | 91精品国产高清一区二区三区 | 在线播放中文字幕一区| 日韩专区欧美专区| 欧美tk丨vk视频| 国产精品69毛片高清亚洲| 欧美国产一区在线| 91国内精品野花午夜精品| 五月婷婷久久综合| 精品成人一区二区三区四区| 国产91在线|亚洲| 亚洲人123区| 欧美一区二区日韩一区二区| 韩国v欧美v亚洲v日本v| 亚洲欧洲国产日本综合| 欧美日韩在线免费视频| 久久狠狠亚洲综合| 中文字幕一区二区三区四区不卡| 日本高清不卡在线观看| 天堂成人免费av电影一区| 久久综合久久99| 91蜜桃免费观看视频| 日韩电影免费在线观看网站| 久久午夜电影网| 91久久精品日日躁夜夜躁欧美| 丝瓜av网站精品一区二区| 久久你懂得1024| 色天使久久综合网天天| 精品一二线国产| 日韩理论片网站| 精品国产区一区| 91传媒视频在线播放| 国产老妇另类xxxxx| 亚洲一区二区在线视频| 精品欧美一区二区三区精品久久| 99久久99久久精品国产片果冻| 免费成人在线网站| 日韩毛片高清在线播放| 日韩精品一区二区三区视频播放 | 美女看a上一区| 亚洲日本青草视频在线怡红院| 91麻豆精品国产91久久久久久| av亚洲精华国产精华精华 | 激情综合色丁香一区二区| 亚洲日本中文字幕区| 久久一区二区三区国产精品| 欧美日韩亚州综合| 99re热视频精品| 精品一区二区精品| 天天影视色香欲综合网老头| 亚洲欧美日韩国产综合在线| 久久久精品黄色| 91精品国产高清一区二区三区| 97国产一区二区| 成人性生交大片| 国产呦萝稀缺另类资源| 亚洲va国产天堂va久久en| 国产精品久久毛片av大全日韩| 精品国产精品网麻豆系列| 欧美日韩视频一区二区| 91国产成人在线| 99re成人精品视频| 99视频一区二区| 国产成人精品三级| 国产一区二区三区久久悠悠色av | 国内精品视频一区二区三区八戒 | 久久疯狂做爰流白浆xx| 婷婷开心激情综合| 午夜精品免费在线观看| 亚洲精选免费视频| 一区二区三区日韩精品视频| 国产精品久久久久久久久免费丝袜 | 国产精品乱码人人做人人爱| 26uuuu精品一区二区| 欧美成人女星排行榜| 67194成人在线观看| 欧美日韩午夜在线| 欧美福利视频一区| 欧美一级理论片| 欧美伦理影视网| 欧美一区二区三区不卡| 9191久久久久久久久久久| 欧美视频一区在线观看| 欧美日韩国产综合一区二区| 欧美日韩亚洲高清一区二区| 欧美一区二区三区在线看| 日韩欧美亚洲另类制服综合在线| 日韩欧美一区二区在线视频| 日韩欧美一二三| 久久久www免费人成精品| 国产午夜精品一区二区三区视频 | 日韩精品专区在线影院重磅| 欧美一级片在线看| 精品处破学生在线二十三| 久久久久久夜精品精品免费| 中文av字幕一区| 亚洲黄网站在线观看| 日韩中文字幕不卡| 国产永久精品大片wwwapp| 成人视屏免费看| 欧美在线影院一区二区| 欧美一区二区福利视频| 国产日韩亚洲欧美综合| 亚洲素人一区二区| 日韩中文字幕一区二区三区| 国产乱淫av一区二区三区| 色综合久久久久网| 欧美精品少妇一区二区三区| 久久综合网色—综合色88| 中文字幕一区二区三区不卡| 丝袜a∨在线一区二区三区不卡 | 99久久国产综合精品色伊| 欧美日韩五月天| 国产丝袜欧美中文另类| 夜夜精品浪潮av一区二区三区| 另类小说欧美激情| 91免费视频网址| 精品国产精品网麻豆系列| 亚洲欧美日韩国产综合在线| 另类小说色综合网站| 色婷婷激情一区二区三区| 日韩视频免费直播| 亚洲精品免费电影| 国产一二精品视频| 欧美日韩精品一区二区天天拍小说 | 日韩视频123| 最新国产精品久久精品| 蜜桃传媒麻豆第一区在线观看| 国产成人综合亚洲网站| 欧美精品tushy高清| 亚洲同性同志一二三专区| 久久精品噜噜噜成人88aⅴ| 色综合天天综合网天天狠天天 | 国产精品久久久久久亚洲伦| 蜜臀国产一区二区三区在线播放| 99精品热视频| 久久一留热品黄| 奇米精品一区二区三区在线观看一| 成人的网站免费观看| 精品国产乱码久久久久久老虎| 樱花草国产18久久久久| 成人国产精品免费观看| 2021久久国产精品不只是精品| 日精品一区二区| 欧亚洲嫩模精品一区三区| 国产精品人成在线观看免费 | 国产精品素人一区二区| 激情五月激情综合网| 91精品国产欧美日韩| 亚洲成a人片在线不卡一二三区| 99国内精品久久| 国产亚洲欧美日韩在线一区| 麻豆精品久久精品色综合| 欧美在线观看视频一区二区| 国产精品国产成人国产三级| 国产成人无遮挡在线视频| 精品国产乱码91久久久久久网站| 日韩精品福利网| 欧美日韩美女一区二区| 亚洲第一二三四区| 欧美一a一片一级一片| 亚洲一区中文在线| 欧美日韩一区二区不卡| 亚洲成av人片一区二区| 欧美午夜不卡视频| 亚洲高清不卡在线观看| 欧美日精品一区视频| 亚洲电影在线免费观看| 欧美日韩精品综合在线| 日韩不卡一二三区| 欧美成人综合网站| 久久成人久久爱| 久久亚洲一区二区三区明星换脸| 国产精品自拍三区| 国产精品久久久久婷婷二区次| 91免费观看视频| 亚洲电影一级黄| 日韩三级视频在线观看| 国产专区欧美精品| 国产欧美日韩在线看| 不卡av在线网| 一区二区三区在线视频免费| 欧美日韩在线播| 青青草97国产精品免费观看 | 中文字幕中文字幕一区| 99免费精品视频| 亚洲一区视频在线| 欧美大黄免费观看| 国产乱码精品一区二区三| 亚洲欧洲av色图| 91成人网在线| 麻豆精品在线播放| 国产精品私人影院| 欧美色图片你懂的| 激情av综合网| 亚洲免费色视频| 日韩一级免费一区| av亚洲精华国产精华| 日韩电影在线观看电影|