zoukankan      html  css  js  c++  java
  • 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。
     
  • 相关阅读:
    LiveNVS实现摄像头RTSP无插件播放,并集中化管理
    liveplayer免费网页直播_点播播放器-页面动态多播放器添加代码示例
    JavaScript之图片滚动
    JavaScript之图片轮换
    DOS命令
    jquery之音乐均衡器
    JavaScript之可运行按钮
    jQuery之点击弹出图标环形菜单
    Android之View方法
    Android之所有权限
  • 原文地址:https://www.cnblogs.com/ciuciu/p/4462785.html
Copyright © 2011-2022 走看看