CGridCtrl控件是開源的,可在CodePlex和CodeProject上搜索找到,是VC++中用於顯示表格數據的控件。基本功能包括:表格顯示,單元格的編輯,單元格顏色設置,鼠標事件的響應,單元格內嵌入圖片、CheckBox、ComboBox、Bitmap、Button等。
CodeProject中的鏈接http://www.codeproject.com/Articles/8/MFC-Grid-control
利用拖動控件在對話框中使用CGridCtrl
使用CGridCtrl需要將源碼中的將GridCtrl_src文件夾和NewCellTypes內的所有文件添加到自己的工程當中。
創建基於對話框的MFC工程,選擇Custom Control拖動到對話框上,如下圖所示
在控件的屬性對話框中設置Class屬性為MFCGridCtrl(必須),控件ID設置為IDC_GRID(可自由設定),如下圖所示
接下來利用ClassWizard為控件關聯變量,變量類型為CGridCtrl(圖中的CGridCtrlEx為CGridCtrl的派生類,是自己用於添加的項目需要的額外功能的類),控件類型為MFCGridCtrl,
然后就可以像使用普通控件那樣使用CGridCtrl了。
利用拖動控件在對話框中使用CGridCtrl
在對話框上添加一個PictureBox類型的空間,控件ID設置為IDC_GRID,該控件用於確定CGridCtrl控件在對話框上的顯示位置,如圖所示。
在對話框類的頭文件中增加CGridCtrl的指針類型變量
1 CGridCtrl* m_pGrid;
在OnInitDialog()函數中增加如下代碼
1 int captionHeight = ::GetSystemMetrics(SM_CYCAPTION); 2 int cxframe = GetSystemMetrics(SM_CXFRAME); 3 int cyframe = GetSystemMetrics(SM_CYFRAME); 4 5 CRect rectGridWnd; 6 rectGridWnd.OffsetRect(-cxframe,-cyframe-captionHeight); 7 m_pGrid = new CGridCtrl(5,5); 8 m_pGrid->Create(rectGridWnd,this,IDC_GRID);
然后就可以利用m_pGrid進行各種操作了。