工程搭建好后,可以开始找方法了。

1、首先,建立一个按钮,每按一次,就可更新非当前格子的内容,这个很容易实现:
void CGridControlTest02Dlg::OnBnClickedFillbox()
{
    // TODO: Add your control notification handler code here
            GV_ITEM Item; 
            Item.mask = GVIF_TEXT|GVIF_FORMAT;
            Item.row = 56;
            Item.col = 2;
            Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS;
            Item.strText.Format(_T("55"),2);
            m_pGrid.SetItem(&Item); 
            m_pGrid.Refresh();
            //CCellID cell(56,2);
            //m_pGrid.SetFocusCell(cell);//设置焦点的方法

}
2、接着,就一直找方法,直到我看到GridCtrl.h里的protect中这个函数(BOOL SetScrollPos32(int nBar, int nPos, BOOL bRedraw = TRUE);),然后看使用它的前后代码,发现可以调用它。
但很可惜的是,它是protect,我把它改为public也是一样不能通过编译。
后来,请教同事,发现,在改为public并且用实例化的方式使用它,则编译通过了。如下:
int scrollPos = m_pGrid.GetScrollPos32(SB_VERT);
 
3、然后,我就可以尝试使用我的方法试试了:先获取当前的pos位置,然后算出offset,让当前+offset,则可跳转到有内容更新的位置了:
            int scrollPos = m_pGrid.GetScrollPos32(SB_VERT);
            CCellID idTopLeft = m_pGrid.GetTopleftNonFixedCell();
            int yScroll = m_pGrid.GetRowHeight(idTopLeft.row)*(Item.row-1);
            m_pGrid.SetScrollPos32(SB_VERT, scrollPos + yScroll);

4、编译后通过,并且此法可行。接下来要把此方法修复一下,因为现在有bug。

转载于:https://www.cnblogs.com/ciuciu/p/4462785.html

GridCtrl学习笔记(2)寻找自动更新表格的最新数据并把其显示到当前窗口的方法...相关推荐

  1. Vue -- 指令【学习笔记】(持续更新)

    Vue – 指令[学习笔记](持续更新) 记录了Vue第三天的学习笔记 v-show 注意,v-show 不支持 <template> 元素,也不支持 v-else. 带有 v-show ...

  2. linux磁盘符变化autofs,Linux基础教程学习笔记之Autofs自动挂载

    Linux基础教程学习笔记之Autofs自动挂载 Autofs自动挂载: yum -y install autofs vim /etc/auto.master  在文件中添加下面行 /home/gue ...

  3. [RHCSA学习笔记]Autofs实现自动挂载NFS共享

    NFS/autofs NFS Server 服务端 systemctl status nfs-server.service systemctl status rpcbind.service vi /e ...

  4. oracle数据变化记录,学习笔记:Oracle伪列函数ora_rowscn 记录表中行数据的修改时间...

    天萃荷净 Oracle数据库开发时使用伪列函数ora_rowscn查询出数据库表中行数据的修改时间 一.默认情况下 –创建t_orascn测试表 SQL> create table t_oras ...

  5. Sharepoint学习笔记---如何在Sharepoint2010网站中整合Crystal Report水晶报表(显示数据 二)...

    在Sharepoint学习笔记---如何在Sharepoint2010网站中整合Crystal Report水晶报表(显示数据一)中,解释了如何把Crystal Report整合到Sharepoint ...

  6. 【EF学习笔记07】----------加载关联表的数据 贪婪加载

    [EF学习笔记07]----------加载关联表的数据 贪婪加载 讲解之前,先来看一下我们的数据库结构:班级表 学生表 贪婪加载 //贪婪加载 using (var db = new Entitie ...

  7. 利用python和Tushare自动更新A股每日数据

    利用python和Tushare自动更新A股每日数据 tushare ID :423004 所需接口 整体思路为: 1.利用stock_basic获取ts_code,获得沪深全部上市公司股票代码 2. ...

  8. VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿

    VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿 1.对每行数据按照类别所在列进行循环,判断某类别的工作簿是否存在: 2.如果不存在,则新建工作簿并将该行数据复制粘贴: 3.如果存在则打开 ...

  9. Colly 学习笔记(二)——爬虫框架,抓取下载数据(上证A股数据下载)

    Colly 学习笔记(二)--爬虫框架,抓取下载数据(上证A股数据下载) Colly 学习笔记(一)--爬虫框架,抓取中金公司行业市盈率数据 Colly 学习笔记(二)--爬虫框架,抓取下载数据(上证 ...

最新文章

  1. Tensorflow C++ 编译和调用图模型
  2. java排队买票_【排队买票】 (Java代码)
  3. mysql、clickhouse读写分离性能测试
  4. 多元线性回归分析问题
  5. Android应用内加载pdf的方法?
  6. 碎玻璃:诊断生产Cassandra问题
  7. Java实现:月,日,年,周,访问量统计
  8. 2015 - Human-level control through deep reinforcement learning
  9. CSDN创始人蒋涛:开发者是泛终端生态的第一推动力
  10. ↑nginx+tomcat+httpd实现动静分离↑
  11. Java爬虫系列之二网页解析【爬取知乎首页信息】
  12. mysql忘记密码win10_win10 mysql8.0.12 忘记root密码如何重置密码
  13. 64位Windows 8 运行Trial-Reset,但是提示缺少“MSCOMCTL.OCX”的解决方法
  14. BlazeDS简单介绍
  15. python termios
  16. mysql中的locate_mysql中LOCATE和CASE WHEN...THEN...ELSE...END结合用法
  17. 2021全国人工智能师资培训走进北理工,百度飞桨助力高校教师提升AI能力
  18. 2021德勤技术趋势 附下载
  19. 计算机开启远程服务与修改端口号教程
  20. Galileo新版SD卡系统无法启动问题研究 [精华]

热门文章

  1. python环境变量的配置 alias_vim-python环境配置
  2. ENSP如何开启服务器的http_如何使用HTTP模块在Node.js中创建Web服务器(上)
  3. Qt学习笔记-----Graphics_View_Framework
  4. java spring启动和终止_springBoot jar启动以停止脚本参数详解
  5. javaweb的struts2的分页查询操作
  6. C语言:函数中参数的传值与传地址
  7. POJ 3281 -- Dining(最大流,拆点建图)
  8. chart绑定mysql数据源_MSChart图表之Chart组件 学习一篇(5个主要属性+数据源绑定)...
  9. Linux watch命令详解
  10. allocator类编程实验