首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

Microsoft DataGrid 控件完整使用指南:資料繫結、欄位控制、格式化與排序

     編輯:關於VC++

為什麼選 DataGrid?

DataGrid 是微軟原生 OLE DB 網格控件,與 VC++/Windows 相容性極佳,升級維護無負擔,讓開發者專注業務邏輯而非控件細節。雖有第三方優秀網格,但原生整合度最高。

環境建置

  1. 建立 MFC 對話式專案。
  2. 專案 → 加入至專案 → 元件與控件 → 已註冊的 ActiveX 控件 → Microsoft DataGrid OLEDB 6.0。
  3. ClassWizard 映射類別:CDataGrid (主控件)、CColumns (欄位集合)、CColumn (單一欄位)。

核心功能實作

1. ADO 記錄集繫結顯示資料

CADODatabase m_DBCn;
CADORecordset m_Rs;
CDataGrid m_ctrlDG;

// 開啟資料庫
CString strConn = _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=note.mdb");
m_DBCn.Open(strConn);
m_Rs.SetDatabase(&m_DBCn);
m_Rs.Open(_T("SELECT * FROM test;"));

// 一鍵繫結
m_ctrlDG.SetRefDataSource((LPUNKNOWN)m_Rs.GetRecordset());

插入 DataGrid 控件

資料繫結效果

2. 控制欄位寬度與顯示屬性

CColumns cols = m_ctrlDG.GetColumns(); // 取得欄位集合
COleVariant vtIndex(0); // 第一欄
CColumn col = cols.GetItem(vtIndex); // 取得欄位物件
col.SetWidth(1500); // 設定寬度 (單位: twips, 1/1440 英吋)

欄寬調整效果

3. 設定資料顯示格式 (如小數轉百分比)

col.SetNumberFormat(_T("0.0%")); // 0.1234 → 12.3%

百分比格式效果

4. 多行顯示支援

多行顯示效果

設定欄位 col.SetAllowSizing(TRUE) 並調整 RowHeight,或在資料中內嵌換行符。

5. 標題列點擊排序 (HeadClick 事件)

ClassWizard 對映 HeadClick 事件,在處理函式中依欄位索引對記錄集重新排序或發動 SQL ORDER BY 重查。具體程式碼請參考原始碼專案 TestGrid。

進階技巧

  • 查閱產生的 Wrapper 類別方法名,多為英文直覺命名 (如 SetForeColor、SetFontBold、SetAlignment),可直接推測功能。
  • 控件附帶的 VB 版說明文件雖非 VC 專用,但方法名稱高度一致,對照參考即可快速上手。

測試環境

  • Visual C++ 6.0 英文版
  • Windows XP
  • Microsoft DataGrid OLEDB 6.0

結語

DataGrid 功能遠不止於此,本文拋磚引玉,歡迎同好交流心得。
Email: ChinaITBoy@163.com

本文配套原始碼 (專案名 TestGrid) 可供下載。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved