GridCtrl学习笔记(2)寻找自动更新表格的最新数据并把其显示到当前窗口的方法...
生活随笔
收集整理的這篇文章主要介紹了
GridCtrl学习笔记(2)寻找自动更新表格的最新数据并把其显示到当前窗口的方法...
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
工程搭建好后,可以開始找方法了。
1、首先,建立一個(gè)按鈕,每按一次,就可更新非當(dāng)前格子的內(nèi)容,這個(gè)很容易實(shí)現(xiàn): 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);//設(shè)置焦點(diǎn)的方法 } 2、接著,就一直找方法,直到我看到GridCtrl.h里的protect中這個(gè)函數(shù)(BOOL?SetScrollPos32(int?nBar,?int?nPos,?BOOL?bRedraw?=?TRUE);),然后看使用它的前后代碼,發(fā)現(xiàn)可以調(diào)用它。 但很可惜的是,它是protect,我把它改為public也是一樣不能通過編譯。 后來,請(qǐng)教同事,發(fā)現(xiàn),在改為public并且用實(shí)例化的方式使用它,則編譯通過了。如下: int?scrollPos?=?m_pGrid.GetScrollPos32(SB_VERT); ? 3、然后,我就可以嘗試使用我的方法試試了:先獲取當(dāng)前的pos位置,然后算出offset,讓當(dāng)前+offset,則可跳轉(zhuǎn)到有內(nèi)容更新的位置了:? ? ? ? ? ??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、編譯后通過,并且此法可行。接下來要把此方法修復(fù)一下,因?yàn)楝F(xiàn)在有bug。
轉(zhuǎn)載于:https://www.cnblogs.com/ciuciu/p/4462785.html
總結(jié)
以上是生活随笔為你收集整理的GridCtrl学习笔记(2)寻找自动更新表格的最新数据并把其显示到当前窗口的方法...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 方法传参
- 下一篇: .net .toString() 金额数