人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開(kāi)發(fā)教程 > 詳細(xì)頁(yè)面

VISUAL C++中的OCX控件的運(yùn)用辦法

VISUAL C++中的OCX控件的運(yùn)用辦法

更新時(shí)間:2022-08-27 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

新一代32位操作系統(tǒng)WINDOWS 95舍棄了VBX控件,取而代之的是OCX控件。OCX控件具有功能強(qiáng)大,界面美觀的特點(diǎn),然而許多參考書(shū)中并沒(méi)有詳細(xì)闡述OCX控件的使用方法,使得一些如數(shù)據(jù)庫(kù)表格,遠(yuǎn)程數(shù)據(jù)控件等接口復(fù)雜的OCX難于使用。這里將詳細(xì)闡述OCX的使用方法。
  首先提醒讀者要注意的是:使用OCX構(gòu)件之前,必須登記注冊(cè),否則不能使用。安裝VISUAL C++時(shí),系統(tǒng)自動(dòng)注冊(cè)登記軟件附帶的OCX控件。如果不幸沒(méi)有登記,那么請(qǐng)使用REGSVR32應(yīng)用程序來(lái)注冊(cè)。以VISUAL C++ 5.0為例,用AppWizard生成MFC應(yīng)用程序分為六個(gè)步驟,其中第三個(gè)步驟中可以指定支持OLE控制,也就是我們要使用的OCX控件(是OLE的一種)。如果指定該選項(xiàng),則AppWizard將自動(dòng)向應(yīng)用程序添加以下兩處代碼。
  一處是為了說(shuō)明OLE自動(dòng)類如ColeDispathcDriver,自動(dòng)向Stdafx.h中加入頭文件afxdisp.h
  二是在InitInstance函數(shù)中激活OLE控制容器:
    AfxEnableContainer();
如果在利用AppWizard創(chuàng)建應(yīng)用程序是未指定OLE控制選項(xiàng),則可以手工加入以上兩行代碼。
    在生成應(yīng)用框架后,首先應(yīng)向應(yīng)用程序加入OCX控件對(duì)應(yīng)的類,如遠(yuǎn)程數(shù)據(jù)控件的缺省名為RDC,而數(shù)據(jù)表格的缺省名為MSDBGRID。加入的過(guò)程是選擇Project菜單項(xiàng),選擇Add to Project,選擇Components and Controls項(xiàng),選擇Registered ActiveX Controls項(xiàng),
雙擊你要加入的構(gòu)件。
    然后,通常是在對(duì)話框中加入OCX控制,這時(shí)應(yīng)在對(duì)話框中單擊右鍵,選擇Insert ActiveX Controls,選擇你要加入的控件。這里以遠(yuǎn)程數(shù)據(jù)控件為例。
可以在設(shè)計(jì)時(shí)設(shè)定屬性,當(dāng)然,在運(yùn)行時(shí)刻再設(shè)置屬性值更具有靈活性。屬性中比較關(guān)鍵的是這幾個(gè):

(1)    CursotDriver:(2)DataSourceName (3)SQL。具體的設(shè)置見(jiàn)所附的程序。

以下程序是一個(gè)無(wú)模式對(duì)話框的源代碼:此程序段實(shí)現(xiàn)了一個(gè)與FOXPRO數(shù)據(jù)源相連接的遠(yuǎn)程數(shù)據(jù)控件和一個(gè)與遠(yuǎn)程數(shù)據(jù)庫(kù)控件相連的瀏覽數(shù)據(jù)庫(kù)用的表格。數(shù)據(jù)源(DataSource)名稱為“檔案”,其中包含幾個(gè)表(Table),程序中選擇的是表2。用戶當(dāng)然也可以很輕松的在運(yùn)行時(shí)刻改變連接對(duì)應(yīng)的SQL屬性,以便能夠?yàn)g覽同一數(shù)據(jù)庫(kù)的不同表格,或是不同數(shù)據(jù)庫(kù)的不同表格。數(shù)據(jù)源的建立方法為:控制面板->32位ODBC->ADD…。

// Datatab.cpp : implementation file
#include "stdafx.h"
#include "Datatab.h"
#include <afxcmn.h>
#include <afxcview.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

//////////////////////////////////////// CDatatab dialog

CDatatab::CDatatab(CView * pView):CDialog()
{
    m_pView = pView;
}

BOOL CDatatab::Create()
{
    return CDialog::Create(CDatatab::IDD);
}

CDatatab::CDatatab(CWnd* pParent /*=NULL*/)
    : CDialog(CDatatab::IDD, pParent)
{
    //{{AFX_DATA_INIT(CDatatab)
    //}}AFX_DATA_INIT
}


void CDatatab::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CDatatab)
    DDX_Control(pDX, IDC_REMOTEDATACTL1, m_rdc1);
    DDX_Control(pDX, IDC_DBGRID1, m_grid1);
    //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CDatatab, CDialog)
    //{{AFX_MSG_MAP(CDatatab)
    ON_WM_CLOSE()
    ON_WM_PAINT()
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////// CDatatab message handlers

void CDatatab::OnClose()
{
    // TODO: Add your message handler code here and/or call default
    DestroyWindow();    
    CDialog::OnClose();
}

void CDatatab::OnPaint()
{
    CPaintDC dc(this); // device context for painting
    // TODO: Add your message handler code here
    // Do not call CDialog::OnPaint() for painting messages
}

BOOL CDatatab::OnInitDialog()
{
    CDialog::OnInitDialog();
    
    // TODO: Add extra initialization here
    m_rdc1.SetDataSourceName("檔案");
    m_rdc1.SetSql(_T("SELECT 姓名 年齡 出生日期,from 表2"));
    m_rdc1.SetCaption("數(shù)據(jù)倉(cāng)庫(kù)");
    m_rdc1.SetUserName(_T("admin"));
    m_rdc1.SetPassword(_T(""));
    m_rdc1.SetCursorDriver(1);
    m_rdc1.Refresh();

    LPUNKNOWN pCursor=GetDlgItem(IDC_REMOTEDATACTL1)->GetDSCCursor();
    ASSERT(pCursor!=NULL);
    m_grid1.SetDataSource(pCursor);    //bind the grid
    m_grid1.BindProperty(0x9,GetDlgItem(IDC_REMOTEDATACTL1));

    return TRUE; // return TRUE unless you set the focus to a control
}

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 盐城市| 武定县| 朔州市| 塔城市| 颍上县| 阳谷县| 遂平县| 咸阳市| 曲周县| 玉门市| 镇安县| 和林格尔县| 盐源县| 乌拉特中旗| 垣曲县| 达孜县| 阳曲县| 威信县| 浙江省| 措勤县| 勐海县| 呈贡县| 新宾| 滨海县| 阳信县| 大余县| 阆中市| 大渡口区| 麦盖提县| 云林县| 西城区| 汝阳县| 宁远县| 洞头县| 赤壁市| 榆社县| 孝感市| 射洪县| 洪洞县| 成安县| 万年县|