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

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

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。

时间: 2024-10-09 07:17:58

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

unittest(20)- 自动更新表格中的数据(3)

通过函数获取表格中的手机号 # 1. get_data.py from tools import project_path import pandas as pd class GetData: Cookie = None AddTel = pd.read_excel(project_path.test_case_path, sheet_name="phone").iloc[0, 0] # df = pd.read_excel(project_path.test_case_path, s

easyui学习笔记2—在行内进行表格的增删改操作【转载】

第一篇笔记中记录了如何实现表格的增删改,那个是点击之后跳出来一个对话框然后进行的,这里是在表格本身上进行的操作,也很简单,但是这里发现一个版本问题,也可以说是兼容性问题. 1.首先我们看引用的js和css代码 <link rel="stylesheet" href="jquery-easyui-1.3.5/themes/default/easyui.css" /> <link rel="stylesheet" href=&quo

学习笔记 Android.mk 自动搜索

最近被Android.mk这东西折腾的一晚,这里记录一下. ios就省心多了,不用管那么多,xcode自己解决了. 文本工具:MACVIM(文本编辑工具 非常好用 能清楚分清tab 和空格,以免编写.mk时出错) 这个文件是向编译器描述源代码文件,便于它去解析. 以下是cocos2dx-3.2新建项目时生成的Android.mk文件 基本语法: "#" 注释 ":="  赋值 "+="  追加 "$"    引用某变量的值 #

Sharepoint2013商务智能学习笔记之使用Current User Filter筛选Excel 数据(六)

Sharepoint自带的filter可以和Excel Web Access互动,下面将制作一个Demo,使用Current User Filter根据当前登录用户自动筛选Excel. 第一步,用Excel打开章节五制作的Excel文件 第二步,新建筛选器 第三步,给gender筛选器命名 第四步,保存文件并上传到sharepoint 第五步,修改用户配置文件,从管理中心,应用程序管理区域点击管理服务应用程序,进入到应用程序管理列表,然后点击User Profile Service实例 第六步,

CSS自动截断表格内的长字符 以省略号显示

CSS自动截断表格内的长字符,以省略号显示,大家可能在一些网站看到过这样的效果,目的是让表格或布局更美观一些,但是不利于阅读,如果您可以能该属性加上title或链接的话那就利于网站体验了,您说是吗? <!DOCTYPE> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>上谷战

【Ext.Net学习笔记】04:Ext.Net中使用数据、Ext.Net Store的用法、Ext.Net ComboBox用法

之前的几篇文章都是介绍Ext.Net较为基础的东西,今天的这一篇将介绍数据的一些用法,包括XTemplate绑定数据.Store(Modal.Proxy).ComboBox的用法等. XTemplate绑定数据 XTemplate是个模板,当我们为一个XTemplate绑定数据之后,将会按照模板的预定格式进行显示. <ext:Window runat="server" ID="win1" Title="XTemplates用法" Width

Android学习笔记(十二)——使用意图传递数据的几种方式

使用意图传递数据的几种方式 点此获取完整代码 我们除了要从活动返回数据,也常常要传递数据给活动.对此我们可以使用Intent对象将这些数据传递给目标活动. 1.创建一个名为PassingData的项目,在activity_main.xml文件中添加一个Button: <Button android:id="@+id/btn_SecondActivity" android:layout_width="fill_parent" android:layout_hei

CAFFE学习笔记(四)将自己的jpg数据转成lmdb格式

1 引言 1-1 以example_mnist为例,如何加载属于自己的测试集? 首先抛出一个问题:在example_mnist这个例子中,测试集是人家给好了的.那么如果我们想自己试着手写几个数字然后验证识别效果又当如何呢? 观察CAFFE_ROOT/examples/mnist/下的lenet_train_test.prototxt文件,发现里面既给出了训练集的路径,又给出了测试集的路径.因此答案很显然了,我们可以把自己的测试集做成leveldb(或lmdb)格式的,然后在lenet_train

Binder学习笔记(五)—— Parcel是怎么打包数据的?

前文中曾经遇到过Parcel,从命名上知道他负责数据打包.在checkService的请求/响应体系中,Parcel只打包了基本数据类型,如Int32.String16……后面还要用于打包抽象数据类型flat_binder_object,这会稍微复杂一些,因此有必要拿出来单独研究.我们从Parcel::writeInterfaceToken(…)追起,它的层层调用关系如下,这些函数都在frameworks/native/libs/binder/Parcel.cpp文件中,行数和函数名为: 582