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

Visual C++ 中 OCX 控制項使用完整指南:以遠端資料控制項為例

     編輯:關於VC++

Windows 95 棄用 VBX 改採 OCX(OLE Control eXtension),功能強大、介面美觀。但許多參考書缺乏詳細使用說明,導致資料庫格柵、遠端資料控制項等複雜 OCX 難以上手。本文詳細闡述 OCX 使用全流程。

前置作業:註冊與專案設定

  1. OCX 必須先註冊(regsvr32 xxx.ocx),VC++ 安裝時會自動註冊內建控制項。
  2. AppWizard 建立 MFC 專案時,步驟 3 勾選 OLE Controls,自動加入:

// Stdafx.h
#include   // OLE 自動化類別支援

// InitInstance()
AfxEnableControlContainer();  // 啟用 OLE 控制項容器

若未勾選,手動加入上述兩行即可。

加入 OCX 類別與對話方塊配置

  1. 專案 → 加入至專案 → 元件與控制項 → 已註冊的 ActiveX 控制項,雙擊目標控制項(如 RDC 遠端資料控制項、MSDBGRID 資料格柵)。
  2. 對話方塊編輯器右鍵 → 插入 ActiveX 控制項,選擇剛加入的控制項。

關鍵屬性設定(以遠端資料控制項 RDC 為例)

執行期動態設定屬性更具彈性,關鍵屬性:

  • CursorDriver:游標驅動程式類型
  • DataSourceName:ODBC 資料來源名稱(DSN)
  • SQL:查詢命令字串

完整無模式對話方塊實作代碼


// Datatab.h
class CDatatab : public CDialog {
    CRDC m_rdc1;      // 遠端資料控制項
    CDBGrid m_grid1;  // 資料格柵控制項
    CView* m_pView;
    // ...
};

// Datatab.cpp
BOOL CDatatab::OnInitDialog() {
    CDialog::OnInitDialog();

    m_rdc1.SetDataSourceName("檔案");  // DSN 名稱
    m_rdc1.SetSQL(_T("SELECT 姓名, 年齡, 出生日期 FROM 表2"));
    m_rdc1.SetCaption("資料倉庫");
    m_rdc1.SetUserName(_T("admin"));
    m_rdc1.SetPassword(_T(""));
    m_rdc1.SetCursorDriver(1);  // 1=ODBC 驅動
    m_rdc1.Refresh();

    // 將格柵綁定至 RDC 游標
    LPUNKNOWN pCursor = GetDlgItem(IDC_REMOTEDATACTL1)->GetDSCCursor();
    ASSERT(pCursor != NULL);
    m_grid1.SetDataSource(pCursor);
    m_grid1.BindProperty(0x9, GetDlgItem(IDC_REMOTEDATACTL1));

    return TRUE;
}

ODBC 資料來源建立

控制台 → 32 位元 ODBC → 新增 → 選擇驅動程式 → 設定 DSN 名稱(如「檔案」)與資料庫路徑。

執行效果

對話方塊顯示格柵,資料來源為 FoxPro 資料庫「表2」,支援執行期動態切換 SQL 查詢不同資料表。

總結

掌握「註冊 → 專案啟用容器 → 加入類別 → 對話方塊配置 → 動態屬性設定 → 資料綁定」六步驟,即可駕馭各類複雜 OCX 控制項。

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