77范文网 - 专业文章范例文档资料分享平台

CGridCtrl学习指南(5)

来源:网络收集 时间:2020-08-23 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

控制单元格是否可以编辑,或者是否保存或放弃修改的方法有好几种。

最简单的方法就是使用SetEditable(BOOL)。这个函数决定了Grid中的单元格是否可以编辑。可以通过在特定单元格中使用GVIS_READONLY来实现更好的控制。

int row = 1;

int col = 10;

m_Grid.SetItemState(row,col, m_Grid.GetItemState(row,col) | GVIS_READONLY);

深层的控制可以通过处理GVN_BEGINLABELEDIT消息来实现。如果消息的返回值小于0,那么试图对指定单元格所做的修改将被取消同时,这个单元格将被看作是只读属性的。当每次试图编辑某一个单元格时都会发送一个这种消息。

为处理这个消息,需要在主窗口中增加一个句柄:

BEGIN_MESSAGE_MAP(CGridCtrlDemoDlg, CDialog) ...

// 增加句柄

ON_NOTIFY(GVN_ENDLABELEDIT, IDC_GRID, OnGridEndEdit)

END_MESSAGE_MAP()

...

// GVN_ENDLABELEDIT

void CGridCtrlDemoDlg::OnGridStartEdit(NMHDR *pNotifyStruct,

LRESULT* pResult) {

NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;

// 如果你允许对单元格进行编辑,那么虚构函数AllowCellToBeEdited将返回TRUE

BOOL bAllowEdit = AllowCellToBeEdited(pItem->iRow, pItem->iColumn);

*pResult = (bAllowEdit)? 0 : -1; }

可以通过相同的方法处理GVN_ENDLABELEDIT消息来实现是保存还是放弃对单元格的编辑行为。

// GVN_ENDLABELEDIT

void CGridCtrlDemoDlg::OnGridEndEdit(NMHDR *pNotifyStruct,

LRESULT* pResult) {

NM_GRIDVIEW* pItem = (NM_GRIDVIEW*) pNotifyStruct;

// 如果你想保存对单元格的修改,那么虚构函数AcceptChange将返回TRUE

BOOL bAcceptChange = AcceptChange(pItem->iRow, pItem->iColumn);

*pResult = (bAcceptChange)? 0 : -1; }

你所能用的最终的确认方法是源于CGridCellBase类,并重载ValidateEdit方法的。如果它返回的是TRUE,那么表示保存修改,否则表示放弃修改。

声名

如果没有下面这些作者的免费代码,这些工作将不会成功。

Joe Willcoxson:我的工作依赖于 Joe的原始代码,它提供了这个控件的基本结构。

Keith Rule:Keith有一个很灵巧的类CMemDC,它能很容易的处理闪烁显示工作。他还提供了copy/paste/drag/drop对象源代码。

Ravi Reddy:我使用了Ravi的一个列表浏览打印代码。

Zafir Anjum:他为我提供了CInPlaceEdit的切入点,并且提供了排序程序和标题提示的源代码。

Eric Woodruff, Brian V. Shifrin, Scot Reed, Aqiruse, Ken Bertelson, Martin Daly帮助我把控件升级到2.X版本--还有很多在以前版本中提供帮助的人。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库CGridCtrl学习指南(5)在线全文阅读。

CGridCtrl学习指南(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1145106.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: