2010-08-08 19:41:38
| 分類:
專業技術
| 標籤:
mfcgridctrl|舉報
|字型大小訂閱
1、首先要使用mfcgridctrl 必須要在用到的系統中匯入gridctrl資料夾的全部cpp和h檔案(方法 project-->add to project -->files),這時候可以在類的試圖中看到cgridctrl ccellid等等一些類
2、加入乙個custom control,將class設為: mfcgridctrl 記住要 mfcgridctrl 這個名字,原因是該類用registerclass註冊了該類,style等可以隨便設定
3、在使用類中,定義乙個物件: cgridctrl m_attrgrid;注意一定要定義乙個物件,否則該類如果是視窗類的話將用domodal無法顯示
4、編譯時如果報錯,說找不到cgridctrl,那麼在相應的定義物件的 .h內將gridctrl.h包含進入 #include "路徑/gridctrl.h"
5、在dodataexchange(cdataexchange* pdx)函式中加入:
ddx_gridcontrol(pdx, idc_grid, m_grid);
6、如果需要初始化該控制項 可在使用的類中的 oninitdialog 加相關函式
比如 我寫的
m_attrgrid.setcolumncount(3);
// 設定總共的列數
m_attrgrid.setrowcount(1)
// 設定總共的行數
m_attrgrid.setfixedrowcount(1); // 設定固定行數
m_attrgrid.setitemtext(0,0,"屬性"); // setitemtext 用來設定某行某列的具體文字數值
m_attrgrid.setitemtext(0,1,"標準值");
m_attrgrid.setitemtext(0,2,"當前值");
// 可以通過
// m_attrgrid.setitemstate(i,0,gvis_readonly);
// m_attrgrid.setitemstate(i,1,gvis_readonly);
/// 來設定單元格是否唯讀
crect grect;
m_attrgrid.getwindowrect(&grect);
// 得到控制項的寬度
m_attrgrid.setcolumnwidth(0,grect.width()/3-2); // 設定沒列的寬度
m_attrgrid.setcolumnwidth(1,grect.width()/3-2);
m_attrgrid.setcolumnwidth(2,grect.width()/3-2);
7、 對於最常見的乙個功能,就是修改完畢後馬上驗證和儲存的方法可以參考如下
修改cgridctrl::onendeditcell 函式,在該函式中新增驗證函式比如
void cgridctrl::onendeditcell(int nrow, int ncol, cstring str)
{ cstring strcurrent = getitemtext(nrow, ncol);
// self check
str=checkinputvalid(nrow, ncol, str); // 你的驗證函式
// 其中strcurrent為修改前的值,str為修改後的值
.....
對於修改後資料的儲存,可以這麼做
先建立對映
on_notify(gvn_endlabeledit, idc_attr_grid, onendeditgrid)
然後在 //{{afx_msg(cxmlviewerdlg) 中建立
afx_msg void onendeditgrid(nmhdr* pnmhdr, lresult* presult);
onendeditgrid(nmhdr* pnmhdr, lresult* presult) 中實現資料儲存操作
{nm_gridview* pnmgv = (nm_gridview*) pnmhdr;
ccellid cii(pnmgv->irow, pnmgv->icolumn);
cstring newvalue=m_attrgrid.getitemtext(cii.row,cii.col);
MFCGridCtrl控制項的使用
1.將該控制項涉及的.cpp 6個 和.h 8個 檔案加入工程 2.從工具箱中拖入custom control,右擊該控制項屬性,將class項設定為mfcgridctrl 3.在工程標頭檔案中,include gridctrl.h 且定義變數cgridctrl m ctrlgrid 4.在工程定義...
MFCGridCtrl的使用方法
1 新建基於dialog的mfc工程gridctrltest 2 將 gridctrl.cpp gridctrl.h 等檔案加到工程中,並編譯 我新增gridctrl src下檔案後,vs2010編譯報錯 gridctrltest memdc.h 26 error c2011 cmemdc clas...
C 的DateTimePicker控制項的使用
1 datetimepicker預設的顯示年月日.如果要顯示時間,將format屬性設為time,並設定showupdown true 2 datetimepicker1.value屬性 year,month,day,hour,minute,second 分別獲取此日期中的年,月,日,時,分,秒 d...