下面有一个处理这个消息的例子:
//处理这个消息的是对话框的一个成员变量m_Gri
BOOL CGridCtrlDemoDlg::OnNotify(WPARAM wParam, LPARAM lParam,
LRESULT* pResult) {
if (wParam == (WPARAM)m_Grid.GetDlgCtrlID()) {
*pResult = 1;
GV_DISPINFO *pDispInfo = (GV_DISPINFO*)lParam;
if (GVN_GETDISPINFO == pDispInfo->hdr.code) {
//TRACE2(\
pDispInfo->item.row, pDispInfo->item.col);
pDispInfo->item.strText.Format(_T(\
pDispInfo->item.row, pDispInfo->item.col);
return TRUE; }
else if (GVN_ODCACHEHINT == pDispInfo->hdr.code) {
GV_CACHEHINT *pCacheHint = (GV_CACHEHINT*)pDispInfo;
TRACE(_T(\
pCacheHint->range.GetMinRow(),
pCacheHint->range.GetMinCol(),
pCacheHint->range.GetMaxRow(),
pCacheHint->range.GetMaxCol()); }
}
return CDialog::OnNotify(wParam, lParam, pResult); }
也可以使用SetCallbackFunc来设置回收函数代替发送GVN_GETDISPINFO消息,而且,Grid可以直接调用这个回收函数,当然了,即使调用了回收函数,GVN_ODCACHEHINT消息还会照常发送。
回收函数应当是如下形式:
BOOL CALLBACK CallbackFunction(GV_DISPINFO * pDispInfo, LPARAM lParam);
例如:
BOOL CALLBACK CGridCtrlDemoDlg::GridCallback(GV_DISPINFO *pDispInfo,
LPARAM /*lParam*/) {
pDispInfo->item.strText.Format(_T(\
pDispInfo->item.row, pDispInfo->item.col);
return TRUE; }
当调用SetCallbackFunc的时候,你可以定义一个LPARAM,这样当每次调用回收函数时可以将这个值传递给这个回收函数。注意这个回收函数必须是一个静态或全局函数。
总体的外观和特征
void SetImageList(CImageList* pList) 设置Grid的当前图形列表,它拷贝的只是列表的指针而非列表本身。
CImageList* GetImageList() 取出Grid当前图形列表
void SetGridLines(int nWhichLines = GVL_BOTH) 设置哪些(如果有的话)线条不可见,从 here 可以找到一些可能的取值。
int GetGridLines() 取出那些(如果有的话)不可见线条,从 here 可以找到一些可能的返回值。
void SetEditable(BOOL bEditable = TRUE) 设置Grid是否可以编辑。
BOOL IsEditable() 判断Grid是否可编辑。.
void SetListMode(BOOL bEnableListMode = TRUE) 将Grid设置成(或不是)排序模式,当Grid处于排序模式时,将启动所有行选,并且这时如果点击列表头时,将会对Grid按行进行排序。
BOOL GetListMode() 判断Grid是否处于排序模式。
void SetSingleRowSelection(BOOL bSing = TRUE) 将G rid设置成(或不是)单行选择模式,这种模式只有在排序模式下有效。 当处在这种模式下,每次只能选择一行,所以整个Grid表现看起来就好象是一个多列的列表框。
BOOL GetSingleRowSelection() 判断Grid是否处于单行选择模式。
void SetSingleColSelection(BOOL bSing = TRUE) 将Grid设置成(或不是)单列选择模式,在这种模式下,每次只能选择一列。
BOOL GetSingleColSelection() 判断Grid是否处于单列选择模式。
void EnableSelection(BOOL bEnable = TRUE) 设置Grid的单元格是否可选。
BOOL IsSelectable() 判断Grid的单元格是否可选。
void SetFixedRowSelection(BOOL bSelect) 设置当点击固定行时,是否选择其旁边的单元格。
BOOL GetFixedRowSelection() 判断当点击固定行时,是否选择其旁边的单元格。
void SetFixedColumnSelection(BOOL bSelect) 设置当点击固定列时,是否选择其下面的单元格
BOOL GetFixedColumnSelection() 判断当点击固定列时,是否选择其下面的单元格
void EnableDragAndDrop(BOOL bAllow = TRUE) 设置是否开启拖曳动作。
BOOL GetDragAndDrop() 判断拖曳动作是否开启。
void SetRowResize(BOOL bResize = TRUE) 设置是否可设置行的大小。
BOOL GetRowResize() 判断是否可设置行的大小。
void SetColumnResize(BOOL bResize = TRUE) 设置是否可设置列的大小。
BOOL GetColumnResize() 判断是否可设置列的大小。
void SetHandleTabKey(BOOL bHandleTab = TRUE) 设置是否启用TAB键来移动选择单元格
BOOL GetHandleTabKey() 判断是否启用TAB键来移动选择单元格。
void SetDoubleBuffering(BOOL bBuffer = TRUE) 设置画图时是否使两级缓冲(不支持闪烁)。
BOOL GetDoubleBuffering() 判断画图时是否使用了两级缓冲。
void EnableTitleTips(BOOL bEnable = TRUE) 设置是否使用标题提示
BOOL GetTitleTips() 判断是否使用标题提示
void SetTrackFocusCell(BOOL bTrack) 设置同行/列中的固定单元格作为焦点单元格时是否高亮显示并且使用凹陷边缘。
BOOL GetTrackFocusCell() 判断同行/列中的固定单元格作为焦点单元格时是否高亮显示并且使用凹陷边缘。
void SetFrameFocusCell(BOOL bFrame) 设置焦点单元格是否高亮显示并且加上外边框。
BOOL GetFrameFocusCell() 判断是否对焦点单元格高亮显示并且加上外边框。
void SetAutoSizeStyle(int nStyle = GVS_BOTH) 设置单元格如何自动调整大小GVS_BOTH = 固定和非固定单元格都可以自动调整; GVS_HEADER = 仅固定单元格可以; GVS_DATA = 仅非固定单元格可以
int GetAutoSizeStyle() 获取自动排序的执行模式。
void EnableHiddenColUnhide(BOOL bEnable = TRUE) 设置当用户调整列的宽度时隐藏列(宽度为0)是否显现出来。
BOOL GetHiddenColUnhide() 判断当用户调整列的宽度时隐藏列(宽度为0)是否显现出来。
void EnableHiddenRowUnhide(BOOL bEnable = TRUE) 设置当用户调整行的高度时隐藏行(高度为0)是否显现出来。
BOOL GetHiddenRowUnhide() 判断当用户调整行的高度时隐藏行(高度为0)是否显现出来。
void EnableColumnHide(BOOL bEnable = TRUE) 设置是否可以通过鼠标将列的宽度压缩为0。
BOOL GetColumnHide() 判断是否可以通过鼠标将列的宽度压缩为0。
void EnableRowHide(BOOL bEnable = TRUE) 设置是否可以通过鼠标将行的高度压缩为0。
BOOL GetRowHide() 判断是否可以通过鼠标将行的高度压缩为0。
颜色
void SetGridBkColor(COLORREF clr) 设置控件的背景颜色(固定和非固定单元格之外的区域)。
COLORREF GetGridBkColor() 获取控件的背景颜色。
void SetGridLineColor(COLORREF clr) 设置网格线的颜色。
COLORREF GetGridLineColor() 获取网格线的颜色。
COLORREF GetTitleTipBackClr() 获取标题提示的背景颜色。
void SetTitleTipBackClr(COLORREF clr = CLR_DEFAULT) 设置标题提示的背景颜色。
COLORREF GetTitleTipTextClr() 获取标题提示的文本颜色。
void SetTitleTipTextClr(COLORREF clr = CLR_DEFAULT) 设置标题提示的文本颜色。
不再支持如下的函数了。你应当使用GetDefaultCell来获取默认单元格实现你所感兴趣的单元格类型,然后就可以直接设置单元格的属性了。如果给定单元格是默认设置值,那么为匹配你的单元格类型,就得在默认的单元格实现中使用这些值。
void SetTextColor(COLORREF clr) 设置非固定单元格中的文本颜色。
COLORREF GetTextColor() 获取非固定单元格中的文本颜色。
void SetTextBkColor(COLORREF clr) 设置非固定单元格的背景颜色。
COLORREF GetTextBkColor() 获取非固定单元格的背景颜色。
void SetFixedTextColor(COLORREF clr) 设置固定单元格的文本颜色。
COLORREF GetFixedTextColor() 获取固定单元格的文本颜色。
void SetFixedBkColor(COLORREF clr) 设置固定单元格的背景颜色。
COLORREF GetFixedBkColor() 获取固定单元格的背景颜色。
void SetBkColor(COLORREF clr) 设置控件的背景颜色 (单元格之外的区域).
COLORREF GetBkColor() 获取控件的背景颜色。
void SetGridColor(COLORREF clr) 设置网格线的颜色。.
COLORREF GetGridColor() 获取网格线的颜色。.
也可以参照Individual Cell colour functions,它允许改变Grid中某一个单元格的颜色以不同于其它单元格。
普通的单元格信息
CGridCellBase* GetDefaultCell(BOOL bFixedRow, BOOL bFixedCol) const 为要创建的单元格类型获取一个默认的单元格实现的指针. bFixedRow 和 bFixedCol 用来申明单元格是否固定(行、列、或者两者) 或非固定. 使用它来定义Grid的默认属性. 事实上Grid中的单元格在它们创建的时候就有了自己的默认属性. 它
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库CGridCtrl学习指南(2)在线全文阅读。
相关推荐: