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

VC++ 資料庫通用模組開發實戰演示:DataGrid 格式化功能展示

     編輯:VC 教學

前言

本文展示 VC++ 資料庫通用模組中 Microsoft DataGrid Control 6.0 的豐富格式化功能,包含欄寬模式、負數百分比顯示、多行文字、背景/前景色、對齊方式等,透過截圖說明各選項效果,供開發者快速評估 UI 表現力。

功能展示與效果說明

1. 欄寬模式

  • 預設寬度:勾選「預設寬度」核取方塊,各欄依內容或預設像素寬度顯示。
  • 百分比寬度:勾選「百分比」核取方塊,欄寬依視窗比例自動分配。

2. 數值格式化

  • 百分比顯示:勾選「百分比」選項,欄位值 < 0 時自動以百分比格式呈現 (如 -0.25 → -25%)。

3. 文字換行

  • 多行顯示:勾選「多行」核取方塊,超過欄寬的文字自動換行,避免被截斷。

4. 色彩樣式

  • 背景色:啟用後,資料列套用交替底色或指定背景色,提升可讀性。
  • 前景色:啟用後,文字顏色依數值正負或自訂規則變色 (如負數紅字)。

5. 對齊方式

  • 左對齊:文字靠左 (預設字串欄位)。
  • 置中對齊:文字置中 (適合數值、狀態欄位)。
  • 右對齊:文字靠右 (適合金額、數字欄位)。

關鍵屬性與方法對照表

功能DataGrid 屬性/方法備註
欄寬設定Columns.GetItem(index).Width單位:像素或百分比 (配合 ColumnWidthMode)
欄標題Columns.GetItem(index).Caption
數值格式Columns.GetItem(index).Format如 "#,##0.00%"、"General Number"
文字換行Columns.GetItem(index).AllowSizing / WordWrap需配合 RowHeight 自動調整
背景色BackColor, AlternatingBackColor整體/交替列
前景色ForeColor, Columns.GetItem(index).ForeColor可逐欄設定
對齊Columns.GetItem(index).AlignmentdbgLeft/dbgCenter/dbgRight

程式碼片段:套用格式化設定

// 假設 m_dbTest 為 CDataGrid 變數,已繫結資料來源
_variant_t vIndex;

// 設定欄寬與標題
for (long i = 0; i < m_dbTest.GetColumns().GetCount(); ++i) {
    vIndex = i;
    m_dbTest.GetColumns().GetItem(vIndex).SetWidth(80); // 預設 80 像素
    // 標題在繫結時已由資料表欄位名自動帶入,亦可覆寫
    // m_dbTest.GetColumns().GetItem(vIndex).SetCaption(_T("自訂標題"));
}

// 啟用多行 (需 DataGrid 控件版本支援)
m_dbTest.SetAllowUserResizing(TRUE); // 允許使用者調整

// 交替列背景色
m_dbTest.SetBackColor(RGB(255,255,255));
m_dbTest.SetAlternatingBackColor(RGB(230,240,255));

// 依欄位設定對齊 (範例:第 1 欄置中,第 2 欄靠右)
vIndex = 1; m_dbTest.GetColumns().GetItem(vIndex).SetAlignment(dbgCenter);
vIndex = 2; m_dbTest.GetColumns().GetItem(vIndex).SetAlignment(dbgRight);

// 負數紅字 (需自行處理 CellFormatting 或使用 Format 屬性)
// DataGrid 6.0 原生 Format 支援條件格式有限,建議改用 FlexGrid 或自繪

截圖對照說明 (原文圖片索引)

  • 圖 4-17:基礎顯示 (預設格式)
  • 圖 4-18:預設寬度模式
  • 圖 4-19:負數百分比格式
  • 圖 4-20:多行文字換行
  • 圖 4-21:背景色 (交替列)
  • 圖 4-22:前景色 (負數紅字)
  • 圖 4-23:左對齊
  • 圖 4-24:置中對齊
  • 圖 4-25:右對齊

遷移建議

DataGrid 6.0 為 ActiveX 控件,現代專案建議遷移至:

  • MFC CMFCListCtrl / CMFCPropertyGridCtrl (原生、無 COM 相依)
  • 第三方庫:Ultimate Grid、BCGSoft Grid、CXTPReportControl (Codejock)。
  • .NET 互通:Windows Forms DataGridView 或 WPF DataGrid 配合 CWinFormsControl 宿主。

總結

DataGrid 6.0 提供基礎的表格格式化功能,涵蓋欄寬、數值格式、換行、色彩、對齊等常見需求。透過 Columns 集合逐欄設定屬性即可達成大部分需求,但進階條件格式、大量資料虛擬化、高 DPI 支援等現代需求,建議改用更新的網格控件。

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