笑看风云淡

宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒
posts - 96, comments - 48, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 ::  :: 聚合  :: 管理

CGridCtrl控件使用

Posted on 2008-12-29 16:22 天之骄子 阅读(4718) 评论(1)  编辑 收藏 引用
CGridCtrl类派生于CWnd类,该类主要包含以下八个方面的函数,其
函数形式如下:

class CGridCtrl : public CWnd

{
    
    
//  1. CGridCtrl类的构造函数
    
    CGridCtrl(
int nRows = 0int nCols = 0int nFixedRows = 0int nFixedCols = 0);
    
    BOOL Create(
const RECT& rect, CWnd* parent, UINT nID,
        
        DWORD dwStyle 
= WS_CHILD | WS_BORDER | WS_TABSTOP | WS_VISIBLE);

    
    
//  2. 表格行、列数方面的函数
    
    BOOL SetRowCount(
int nRows);                         //设置表的行数
        
    BOOL SetColumnCount(
int nCols);                      //设置表的列数
        
    BOOL SetFixedRowCount(
int nFixedRows = 1);            //设置表的固定行数
        
    BOOL SetFixedColumnCount(
int nFixedCols = 1);         //设置表的固定列数
        
    
int  GetFixedRowCount() const;                        //  取表的固定行数
        
    
int  GetFixedColumnCount() const;                     //取表的固定列数
        
    ……
        
    
//  3. 表格尺寸大小方面的函数
        
    BOOL SetRowHeight(
int row, int height);                //设置表格单元的高度
        
    BOOL SetColumnWidth(
int col, int height);              //设置表格单元的宽度
        
    
int GetRowHeight(int nRow) const;                      //获取表格单元的高度
        
    
int GetColumnWidth(int nCol) const;                    //获取表格单元的宽度
        
    
void AutoSize();                          //对表格单元的高度与宽度进行自动设置
        
    ……
        
    
//  4. 表格显示与特征方面的函数
        
    
void SetImageList(CImageList* pList);                    //设置列表图标
    
    
void SetEditable(BOOL bEditable = TRUE);                 //设置表格的编辑状态
        
    BOOL SetColumnType(
int nCol, int nType);                 //设置表格的列状态
        
    ……
        
    
// 5. 颜色方面的函数
        
    
void SetTextColor(COLORREF clr);                    //设置输入表格的文本颜色
        
    
void SetTextBkColor(COLORREF clr);               //设置可供输入文本的表格颜色
        
    
void SetFixedTextColor(COLORREF clr);            //设置输入固定表格的文本颜色
        
    
void SetFixedBkColor(COLORREF clr);              //设置固定表格颜色
        
    ……
        
    
// 6. 表格信息函数
        
    BOOL SetItem(
const GV_ITEM* pItem);              // 向表格中输入信息
        
    BOOL SetItemText(
int nRow, int nCol, LPCTSTR str);    //向某一单元表格中输入文本
        
    BOOL SetItemImage(
int nRow, int nCol, int iImage);     //在某一单元表格中设置图标
        
    ……
        
    
// 7. 编辑方面的函数
        
    
virtual void OnEditCell(int nRow, int nCol, UINT nChar)     //开始对表格进行编辑
        
    
virtual void OnEndEditCell(int nRow, int nCol, CString str)   //结束对表格编辑
        
    ……
        
    
// 8. 表格打印函数
        
    
void Print();                                       //打印表格
        
    ……
        
}
;

CGridCtrl类的构造函数形式如下:

CGridCtrl::CGridCtrl(int nRows, int nCols, int nFixedRows, int nFixedCols)

{

    m_crWindowText       
= ::GetSysColor(COLOR_WINDOWTEXT);

    m_crWindowColour     
= ::GetSysColor(COLOR_WINDOW);

    m_cr3DFace           
= ::GetSysColor(COLOR_3DFACE);

    m_nRows              
= 0;         //初始电子表格的行数

    m_nCols               
= 0;        //初始电子表格的列数

    m_nFixedRows          
= 0;        //初始化固定表格的行数

    m_nFixedCols           
= 0;       //初始化固定表格的列数

    m_bEditable            
= TRUE;    //初始化表格为可编辑状态

     ……

       
//初始化设置表格的行列数

    SetRowCount(nRows);

    SetColumnCount(nCols);

    SetFixedRowCount(nFixedRows);

    SetFixedColumnCount(nFixedCols);

     
// 初始化表格的背景颜色及输入表格的文本颜色

    SetTextColor(m_crWindowText);

    SetTextBkColor(m_crWindowColour);

    SetFixedTextColor(m_crWindowText);

    SetFixedBkColor(m_cr3DFace);

    ……      
}

对表格中所输入信息属性的描述,是通过定义一结构体函数来实现,该结构体函数形式如下:

typedef struct _GV_ITEM {
    
    
int     row,col;            // 输入信息的位置
    
    UINT    mask;                
//输入信息的灰度值
    
    UINT    state;                
// 表格单元的状态
    
    UINT    nFormat;            
// 信息的输入形式
    
    CString szText;                
// 输入表格单元的文本
    
}
 GV_ITEM;


将CGridCtrl类与以下类结合起来,即可构造成在其上可进行编辑和修改的电子
表格,这些类分别为:

1.用于单元表格范围的两个类:CCellRange[2]类和CCellID[3]类;

2.单元表格状态属性的类:CGridCell[4]类;

3.对表格进行编辑的两个类:CInplaceEdit[5]类和CInplaceList[6]类;

Feedback

# re: CGridCtrl控件使用  回复  更多评论   

2009-01-07 22:33 by gg
不错

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理