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

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

?? gridctrl.h

?? 股票軟件
?? H
?? 第 1 頁 / 共 3 頁
字號:
/////////////////////////////////////////////////////////////////////////////
// GridCtrl.h : header file
//
// MFC Grid Control - main header
//
// Written by Chris Maunder <chris@codeproject.com>
// Copyright (c) 1998-2005. All Rights Reserved.
//
// This code may be used in compiled form in any way you desire. This
// file may be redistributed unmodified by any means PROVIDING it is 
// not sold for profit without the authors written consent, and 
// providing that this notice and the authors name and all copyright 
// notices remains intact. 
//
// An email letting me know how you are using it would be nice as well. 
//
// This file is provided "as is" with no expressed or implied warranty.
// The author accepts no liability for any damage/loss of business that
// this product may cause.
//
// For use with CGridCtrl v2.20+
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_GRIDCTRL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_)
#define AFX_GRIDCTRL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_

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

#include "CellRange.h"
#include "GridCell.h"
#include <afxtempl.h>
#include <vector>


///////////////////////////////////////////////////////////////////////////////////
// Defines - these determine the features (and the final size) of the final code
///////////////////////////////////////////////////////////////////////////////////

//#define GRIDCONTROL_NO_TITLETIPS   // Do not use titletips for cells with large data
//#define GRIDCONTROL_NO_DRAGDROP    // Do not use OLE drag and drop
//#define GRIDCONTROL_NO_CLIPBOARD   // Do not use clipboard routines

#ifdef _WIN32_WCE
#   define GRIDCONTROL_NO_TITLETIPS   // Do not use titletips for cells with large data
#   define GRIDCONTROL_NO_DRAGDROP    // Do not use OLE drag and drop
#   define GRIDCONTROL_NO_CLIPBOARD   // Do not use clipboard routines
#   define GRIDCONTROL_NO_PRINTING    // Do not use printing routines
#   ifdef WCE_NO_PRINTING			  // Older versions of CE had different #def's
#       define _WIN32_WCE_NO_PRINTING
#   endif
#   ifdef WCE_NO_CURSOR
#       define _WIN32_WCE_NO_CURSOR
#   endif
#endif  // _WIN32_WCE

// Use this as the classname when inserting this control as a custom control
// in the MSVC++ dialog editor
#define GRIDCTRL_CLASSNAME    _T("MFCGridCtrl")  // Window class name
#define IDC_INPLACE_CONTROL   8                  // ID of inplace edit controls


///////////////////////////////////////////////////////////////////////////////////
// Conditional includes
///////////////////////////////////////////////////////////////////////////////////

#ifndef GRIDCONTROL_NO_TITLETIPS
#   include "TitleTip.h"
#endif

#ifndef GRIDCONTROL_NO_DRAGDROP
#   include "GridDropTarget.h"
#   undef GRIDCONTROL_NO_CLIPBOARD     // Force clipboard functions on
#endif

#ifndef GRIDCONTROL_NO_CLIPBOARD
#   include <afxole.h>
#endif


///////////////////////////////////////////////////////////////////////////////////
// Helper functions
///////////////////////////////////////////////////////////////////////////////////

// Handy functions
#define IsSHIFTpressed() ( (GetKeyState(VK_SHIFT) & (1 << (sizeof(SHORT)*8-1))) != 0   )
#define IsCTRLpressed()  ( (GetKeyState(VK_CONTROL) & (1 << (sizeof(SHORT)*8-1))) != 0 )

// Backwards compatibility for pre 2.20 grid versions
#define DDX_GridControl(pDX, nIDC, rControl)  DDX_Control(pDX, nIDC, rControl)     


///////////////////////////////////////////////////////////////////////////////////
// Structures
///////////////////////////////////////////////////////////////////////////////////

// This structure sent to Grid's parent in a WM_NOTIFY message
typedef struct tagNM_GRIDVIEW {
    NMHDR hdr;
    int   iRow;
    int   iColumn;
} NM_GRIDVIEW;

// This is sent to the Grid from child in-place edit controls
typedef struct tagGV_DISPINFO {
    NMHDR   hdr;
    GV_ITEM item;
} GV_DISPINFO;

// This is sent to the Grid from child in-place edit controls
typedef struct tagGV_CACHEHINT {
    NMHDR      hdr;
    CCellRange range;
} GV_CACHEHINT;

// storage typedef for each row in the grid
typedef CTypedPtrArray<CObArray, CGridCellBase*> GRID_ROW;

// For virtual mode callback
typedef BOOL (CALLBACK* GRIDCALLBACK)(GV_DISPINFO *, LPARAM);

///////////////////////////////////////////////////////////////////////////////////
// Defines
///////////////////////////////////////////////////////////////////////////////////

// Grid line/scrollbar selection
#define GVL_NONE                0L      // Neither
#define GVL_HORZ                1L      // Horizontal line or scrollbar
#define GVL_VERT                2L      // Vertical line or scrollbar
#define GVL_BOTH                3L      // Both

// Autosizing option
#define GVS_DEFAULT             0
#define GVS_HEADER              1       // Size using column fixed cells data only
#define GVS_DATA                2       // Size using column non-fixed cells data only
#define GVS_BOTH                3       // Size using column fixed and non-fixed

// Cell Searching options
#define GVNI_FOCUSED            0x0001
#define GVNI_SELECTED           0x0002
#define GVNI_DROPHILITED        0x0004
#define GVNI_READONLY           0x0008
#define GVNI_FIXED              0x0010
#define GVNI_MODIFIED           0x0020

#define GVNI_ABOVE              LVNI_ABOVE
#define GVNI_BELOW              LVNI_BELOW
#define GVNI_TOLEFT             LVNI_TOLEFT
#define GVNI_TORIGHT            LVNI_TORIGHT
#define GVNI_ALL                (LVNI_BELOW|LVNI_TORIGHT|LVNI_TOLEFT)
#define GVNI_AREA               (LVNI_BELOW|LVNI_TORIGHT)

// Hit test values (not yet implemented)
#define GVHT_DATA               0x0000
#define GVHT_TOPLEFT            0x0001
#define GVHT_COLHDR             0x0002
#define GVHT_ROWHDR             0x0004
#define GVHT_COLSIZER           0x0008
#define GVHT_ROWSIZER           0x0010
#define GVHT_LEFT               0x0020
#define GVHT_RIGHT              0x0040
#define GVHT_ABOVE              0x0080
#define GVHT_BELOW              0x0100

// Messages sent to the grid's parent (More will be added in future)
#define GVN_BEGINDRAG           LVN_BEGINDRAG        // LVN_FIRST-9
#define GVN_BEGINLABELEDIT      LVN_BEGINLABELEDIT   // LVN_FIRST-5
#define GVN_BEGINRDRAG          LVN_BEGINRDRAG
#define GVN_COLUMNCLICK         LVN_COLUMNCLICK
#define GVN_DELETEITEM          LVN_DELETEITEM
#define GVN_ENDLABELEDIT        LVN_ENDLABELEDIT     // LVN_FIRST-6
#define GVN_SELCHANGING         LVN_ITEMCHANGING
#define GVN_SELCHANGED          LVN_ITEMCHANGED
#define GVN_GETDISPINFO         LVN_GETDISPINFO 
#define GVN_ODCACHEHINT         LVN_ODCACHEHINT 

class CGridCtrl;

/////////////////////////////////////////////////////////////////////////////
// CGridCtrl window

typedef bool (*PVIRTUALCOMPARE)(int, int);

class CGridCtrl : public CWnd
{
    DECLARE_DYNCREATE(CGridCtrl)
    friend class CGridCell;
    friend class CGridCellBase;

// Construction
public:
    CGridCtrl(int nRows = 0, int nCols = 0, int nFixedRows = 0, int nFixedCols = 0);

    BOOL Create(const RECT& rect, CWnd* parent, UINT nID,
                DWORD dwStyle = WS_CHILD | WS_BORDER | WS_TABSTOP | WS_VISIBLE);

///////////////////////////////////////////////////////////////////////////////////
// Attributes
///////////////////////////////////////////////////////////////////////////////////
public:
    int  GetRowCount() const                    { return m_nRows; }
    int  GetColumnCount() const                 { return m_nCols; }
    int  GetFixedRowCount() const               { return m_nFixedRows; }
    int  GetFixedColumnCount() const            { return m_nFixedCols; }
    BOOL SetRowCount(int nRows = 10);
    BOOL SetColumnCount(int nCols = 10);
    BOOL SetFixedRowCount(int nFixedRows = 1);
    BOOL SetFixedColumnCount(int nFixedCols = 1);

    int  GetRowHeight(int nRow) const;
    BOOL SetRowHeight(int row, int height);
    int  GetColumnWidth(int nCol) const;
    BOOL SetColumnWidth(int col, int width);

    BOOL GetCellOrigin(int nRow, int nCol, LPPOINT p);
    BOOL GetCellOrigin(const CCellID& cell, LPPOINT p);
    BOOL GetCellRect(int nRow, int nCol, LPRECT pRect);
    BOOL GetCellRect(const CCellID& cell, LPRECT pRect);

    BOOL GetTextRect(const CCellID& cell, LPRECT pRect);
    BOOL GetTextRect(int nRow, int nCol, LPRECT pRect);

    CCellID GetCellFromPt(CPoint point, BOOL bAllowFixedCellCheck = TRUE);

    int  GetFixedRowHeight() const;
    int  GetFixedColumnWidth() const;
    long GetVirtualWidth() const;
    long GetVirtualHeight() const;

    CSize GetTextExtent(int nRow, int nCol, LPCTSTR str);
    // EFW - Get extent of current text in cell
    inline CSize GetCellTextExtent(int nRow, int nCol)  { return GetTextExtent(nRow, nCol, GetItemText(nRow,nCol)); }

    void     SetGridBkColor(COLORREF clr)         { m_crGridBkColour = clr;           }
    COLORREF GetGridBkColor() const               { return m_crGridBkColour;          }
    void     SetGridLineColor(COLORREF clr)       { m_crGridLineColour = clr;         }
    COLORREF GetGridLineColor() const             { return m_crGridLineColour;        }

	void	 SetTitleTipBackClr(COLORREF clr = CLR_DEFAULT) { m_crTTipBackClr = clr;  }
	COLORREF GetTitleTipBackClr()				            { return m_crTTipBackClr; }
	void	 SetTitleTipTextClr(COLORREF clr = CLR_DEFAULT) { m_crTTipTextClr = clr;  }
	COLORREF GetTitleTipTextClr()				            { return m_crTTipTextClr; }

    // ***************************************************************************** //
    // These have been deprecated. Use GetDefaultCell and then set the colors
    void     SetTextColor(COLORREF clr)      { m_cellDefault.SetTextClr(clr);        }
    COLORREF GetTextColor()                  { return m_cellDefault.GetTextClr();    }
    void     SetTextBkColor(COLORREF clr)    { m_cellDefault.SetBackClr(clr);        }
    COLORREF GetTextBkColor()                { return m_cellDefault.GetBackClr();    }
    void     SetSelectedBkColor(COLORREF clr){ m_cellDefault.SetSelectedBkClr(clr);  }
    COLORREF GetSelectedBkColor() const      { return m_cellDefault.GetSelectedBkClr();  }
    void     SetFixedTextColor(COLORREF clr) { m_cellFixedRowDef.SetTextClr(clr); 
                                               m_cellFixedColDef.SetTextClr(clr); 
                                               m_cellFixedRowColDef.SetTextClr(clr); }
    COLORREF GetFixedTextColor() const       { return m_cellFixedRowDef.GetTextClr(); }
    void     SetFixedBkColor(COLORREF clr)   { m_cellFixedRowDef.SetBackClr(clr); 
                                               m_cellFixedColDef.SetBackClr(clr); 
                                               m_cellFixedRowColDef.SetBackClr(clr); }
    COLORREF GetFixedBkColor() const         { return m_cellFixedRowDef.GetBackClr(); }
    void     SetGridColor(COLORREF clr)      { SetGridLineColor(clr);                }
    COLORREF GetGridColor()                  { return GetGridLineColor();            }
    void     SetBkColor(COLORREF clr)        { SetGridBkColor(clr);                  }
    COLORREF GetBkColor()                    { return GetGridBkColor();              }

    void     SetDefCellMargin( int nMargin)  { m_cellDefault.SetMargin(nMargin); 
                                               m_cellFixedRowDef.SetMargin(nMargin); 
                                               m_cellFixedColDef.SetMargin(nMargin); 
                                               m_cellFixedRowColDef.SetMargin(nMargin); }
    int      GetDefCellMargin() const        { return m_cellDefault.GetMargin();     }

    int      GetDefCellHeight() const        { return m_cellDefault.GetHeight();     }
    void     SetDefCellHeight(int nHeight)   { m_cellDefault.SetHeight(nHeight); 
                                               m_cellFixedRowDef.SetHeight(nHeight); 
                                               m_cellFixedColDef.SetHeight(nHeight); 
                                               m_cellFixedRowColDef.SetHeight(nHeight); }
    int      GetDefCellWidth() const         { return m_cellDefault.GetWidth();     }
    void     SetDefCellWidth(int nWidth)     { m_cellDefault.SetWidth(nWidth); 
                                               m_cellFixedRowDef.SetWidth(nWidth); 
                                               m_cellFixedColDef.SetWidth(nWidth); 
                                               m_cellFixedRowColDef.SetWidth(nWidth); }

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

    int GetSelectedCount() const                  { return (int)m_SelectedCellMap.GetCount(); }

    CCellID SetFocusCell(CCellID cell);
    CCellID SetFocusCell(int nRow, int nCol);
    CCellID GetFocusCell() const                  { return m_idCurrentCell;           }


    void SetVirtualMode(BOOL bVirtual);
    BOOL GetVirtualMode() const                   { return m_bVirtualMode;            }
    void SetCallbackFunc(GRIDCALLBACK pCallback, 
                         LPARAM lParam)           { m_pfnCallback = pCallback; m_lParam = lParam; }
    GRIDCALLBACK GetCallbackFunc()                { return m_pfnCallback;             }


    void SetImageList(CImageList* pList)          { m_pImageList = pList;             }
    CImageList* GetImageList() const              { return m_pImageList;              }

    void SetGridLines(int nWhichLines = GVL_BOTH);
    int  GetGridLines() const                     { return m_nGridLines;              }
    void SetEditable(BOOL bEditable = TRUE)       { m_bEditable = bEditable;          }
    BOOL IsEditable() const                       { return m_bEditable;               }
    void SetListMode(BOOL bEnableListMode = TRUE);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩专区中文字幕一区二区| 99国产精品久久久久| 成人免费观看视频| 欧美日韩一区中文字幕| 国产精品成人免费| 狠狠色丁香久久婷婷综合丁香| 91极品视觉盛宴| 国产午夜精品久久久久久免费视| 日韩精品电影在线观看| 在线看日韩精品电影| 国产精品免费aⅴ片在线观看| 日本成人中文字幕在线视频| 91蝌蚪国产九色| 国产精品久久久久一区二区三区共| 青娱乐精品视频| 5月丁香婷婷综合| 亚洲一级在线观看| 在线视频欧美精品| 亚洲婷婷综合久久一本伊一区 | 美洲天堂一区二卡三卡四卡视频| 一本到一区二区三区| 国产精品久久久久一区| 精品一区二区免费| 日韩亚洲欧美一区二区三区| 午夜精品久久久久久久久久| 一本到不卡免费一区二区| 亚洲国产精品激情在线观看| 国内精品伊人久久久久av一坑| 日韩欧美国产一区二区三区| 日韩国产在线一| 日韩欧美国产综合在线一区二区三区| 亚洲成a天堂v人片| 欧美二区乱c少妇| 日韩成人一区二区三区在线观看| 91精品国产麻豆| 精一区二区三区| 久久久综合九色合综国产精品| 国产一区二区三区免费看| www国产亚洲精品久久麻豆| 精品一区免费av| 国产欧美精品在线观看| 99re66热这里只有精品3直播| 国产精品久久久久影院亚瑟| 91麻豆国产在线观看| 亚洲综合精品自拍| 91精品国产福利| 国产资源精品在线观看| 国产精品久久久久7777按摩 | 国产永久精品大片wwwapp| 久久婷婷色综合| 成人激情视频网站| 亚洲国产中文字幕| 日韩三级视频在线看| 国产激情一区二区三区桃花岛亚洲| 国产日韩亚洲欧美综合| 色婷婷亚洲精品| 蜜桃久久久久久| 中文字幕五月欧美| 欧美丰满美乳xxx高潮www| 蜜桃av一区二区| 国产精品国模大尺度视频| 欧美日韩精品高清| 福利一区二区在线观看| 综合电影一区二区三区| 欧美一区三区四区| 粉嫩aⅴ一区二区三区四区| 亚洲一区二区在线播放相泽| 日韩久久久精品| 色综合久久综合| 国产毛片精品视频| 五月天激情小说综合| 久久精品视频免费观看| 色综合天天狠狠| 国产乱对白刺激视频不卡| 亚洲第一精品在线| 国产欧美日韩综合| 欧美一区午夜视频在线观看| 成人av免费网站| 精品亚洲porn| 亚洲成人免费看| 日韩美女视频19| 久久久久九九视频| 8x福利精品第一导航| 91免费视频网| 粉嫩一区二区三区在线看| 青青青伊人色综合久久| 一区二区三区四区不卡在线| 久久嫩草精品久久久精品| 4438x成人网最大色成网站| 色综合天天综合网天天狠天天| 久久99国产精品免费网站| 偷偷要91色婷婷| 亚洲一区二区三区三| 中国色在线观看另类| 久久久一区二区| 2021中文字幕一区亚洲| 91精品国产色综合久久不卡蜜臀| 色综合一区二区| 91在线视频官网| 不卡高清视频专区| 豆国产96在线|亚洲| 国产乱妇无码大片在线观看| 久久国产精品99久久人人澡| 丝袜美腿成人在线| 日韩中文字幕一区二区三区| 亚洲成人动漫av| 亚洲一区在线电影| 亚洲国产色一区| 亚洲国产精品一区二区www在线| 亚洲免费观看高清完整| 亚洲天堂网中文字| 亚洲色图色小说| 亚洲日本欧美天堂| 亚洲蜜臀av乱码久久精品| 亚洲人成精品久久久久| 136国产福利精品导航| 亚洲欧洲日产国码二区| 亚洲另类在线制服丝袜| 一区二区不卡在线播放 | 中文字幕中文乱码欧美一区二区 | 欧美一区二区在线免费观看| 欧美麻豆精品久久久久久| 欧美精品久久一区二区三区| 69久久夜色精品国产69蝌蚪网| 在线播放日韩导航| 日韩精品一区二区三区视频播放| 精品欧美乱码久久久久久| 久久免费看少妇高潮| 中文字幕乱码日本亚洲一区二区 | 色婷婷av一区二区三区gif| 欧美亚一区二区| 日韩欧美一级二级三级| 国产亚洲一二三区| 亚洲日本在线视频观看| 性久久久久久久久久久久| 日本美女一区二区| 国产福利精品导航| 色婷婷综合久久久中文字幕| 欧美日韩成人高清| 久久人人爽人人爽| 一区二区免费看| 久久国产婷婷国产香蕉| av激情综合网| 日韩西西人体444www| 国产精品污www在线观看| 亚洲电影在线播放| 国产一区免费电影| 欧美色手机在线观看| 精品国产亚洲在线| 亚洲精品视频一区| 精品一区中文字幕| 91成人国产精品| 精品91自产拍在线观看一区| 亚洲色图视频网| 久草热8精品视频在线观看| 一本色道亚洲精品aⅴ| 日韩欧美美女一区二区三区| 亚洲人成小说网站色在线| 精品一区二区在线看| 色噜噜偷拍精品综合在线| 欧美不卡一区二区三区四区| 综合久久综合久久| 国产一区二区三区在线观看免费视频| 色偷偷久久一区二区三区| 久久久另类综合| 爽好久久久欧美精品| 99国产精品久久久| 国产日产欧产精品推荐色| 美腿丝袜亚洲一区| 欧美影院一区二区三区| 国产精品久久777777| 理论片日本一区| 欧美日韩免费观看一区二区三区| 亚洲国产精品二十页| 精品一区二区三区欧美| 欧美日韩一级二级| 亚洲欧美日韩中文字幕一区二区三区| 国产又粗又猛又爽又黄91精品| 欧美日韩亚洲丝袜制服| 亚洲精品欧美在线| jiyouzz国产精品久久| 久久女同互慰一区二区三区| 蜜臀av性久久久久av蜜臀妖精| 欧美视频在线一区二区三区| 亚洲欧美怡红院| 成人三级在线视频| 国产视频一区二区三区在线观看| 美国十次了思思久久精品导航| 欧美日韩国产三级| 午夜精品久久久久久| 欧美性大战久久| 亚洲永久免费av| 欧美最猛性xxxxx直播| 一区二区成人在线视频| 色综合久久久久综合99| 中文字幕日韩一区| av电影在线不卡| 亚洲欧美色一区| 欧美午夜精品一区二区三区| 亚洲一区二区偷拍精品|