• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • DBGrid 在VC 5.0中的使用

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    蘇州 沈建新 在VC5.0 中使用DBGrid 控件,首先要運行ODBC 數據源管理程序安裝數據源(我們以數據源是STUDENT 為例)。其方法為:在控制面板中雙擊ODBC 圖標,運行ODBC 數據源管理程序。單擊Add 按鈕, 在Add Data Source 對話框中選擇Microsoft Access Driver
    蘇州 沈建新

      在VC5.0 中使用DBGrid 控件,首先要運行ODBC 數據源管理程序安裝數據源(我們以數據源是STUDENT 為例)。其方法為:在控制面板中雙擊ODBC 圖標,運行ODBC 數據源管理程序。單擊Add 按鈕, 在Add Data Source 對話框中選擇Microsoft Aclearcase/" target="_blank" >ccess Driver,出現ODBC Microsoft Access 97 Setup 對話框,輸入數據源名Student 以及選擇好數據庫student.mdb,然后單擊OK,再確定完成設置。

      與在VB 中使用DBGrid 控件相類似,在VC 中使用DBGrid 控件也需要一個類似于Data 的控件,不過它叫RemoteData 控件。

      下面我們舉兩個示例程序來演示DBGrid 控件的使用方法,這兩個示例的項目名都為DBGrid。

      一、示例程序

      按如下步驟創建:
      1、運行AppWizard 生成項目DBGrid。除選擇Single Document 和CDBGridView 的基類改為FormView 以外,其他均按默認設置處理。
      2、在項目DBGrid 中添加DBGrid 控件和Microsoft RemoteData 控件。從Developer Studio 的Project 菜單中選擇Add To Project,再從子菜單中選擇Componets And Controls。選擇Registered ActiveX Controls,然后選擇DBGrid Control 和Microsoft RemoteData Control。Developer Studio 將產生控件類CMSDgridCtrl 和CRdc,并把相應的文件添加到項目中。
      3、在IDD_DBGRID_FORM 模板中加入控件。利用控件工具箱加入RemoteData 和DBGrid 控件。
      對控件RemoteData 編輯。選中該控件,單擊鼠標右鍵,選擇Propertis,出現Microsoft RemoteData Control 2.0 Properties 對話框。選擇General 標簽,修改資源ID 為IDC_RDCSTUDENT,Caption 為Student。單擊Control 標簽,Datasource 選擇Student(即前面ODBC 數據源管理程序安裝的數據源),SQL 中輸入語句Select *from student。
      對控件DBGrid 編輯。選擇該控件,單擊鼠標右鍵,選擇Propertis,出現DBGrid Control Properties 對話框。選擇General 標簽,修改資源ID 為IDC_DBGSTUDENT,Caption 為Student 或不設置。單擊All 標簽,DataMode 選擇0 -Bound,DataSource 選擇IDC_RDCSTUDENT。
      4、編譯并測試程序。DBGrid 在程序中正確地工作了。
      示例程序1 可能過于簡單了,不過它的目的只是演示DBGrid 控件在VC5.0 中使用的方法。下面我們對它略作改進。

      1、修改設計時DBGrid 控件的列數。DBGrid 控件在設計時的列數默認為兩列。選擇DBGrid 控件,單擊鼠標右鍵,選擇DBGrid Control Object,再選擇Edit??瓷先]有什么變化,其實不然,再選擇DBGrid 控件,單擊鼠標右鍵,可以發現此時的菜單不同了,選擇Insert,此時DBGrid 控件的列由原來默認的兩列變成了三列。重復操作,直到DBGrid 控件的列數滿足你的要求為止。
      2、修改DBGrid 控件的列標題。DBGrid 控件的列標題默認為數據集的字段名,可以改為我們想要的列標題。步驟如下:
      A、修改DBGrid 控件的列標題。選擇該控件,單擊鼠標右鍵,選擇Propertis,出現DBGrid Control Properties 對話框。選擇Columns 標簽,在Column 選擇Column0,Caption 中輸入“編號”,DataField 中選擇StudentID,在其他項中選擇或輸入你認為需要的信息。重復本步驟,直至完成修改所有的列標題為止。

      B、關閉DBGrid Control Properties 對話框,可以看到修改的列標題已經在DBGrid 控件上出現了。
      3、在程序運行時改變DBGrid 控件的尺寸。在視圖尺寸大小改變時,DBGrid 控件的尺寸卻沒有改變,需要添加消息處理函數OnSize ()。
      A、使用ClassWizard 為類CDBGridView 加入成員變量。在ClassWizard 中單擊Member Variables 標簽,選擇IDC_DBGSTUDENT,添加變量m_dbgstudent,類型為Control。
      B、使用ClassWizard 映射視圖類的WM_SIZE 函數。編輯函數如下:
    void CDBGridView::OnSize(UINT nType, int cx, int cy)
    {
       CFormView::OnSize(nType, cx, cy);
       
       CRect rect;
       GetClientRect(rect);
       ::SetWindowPos(m_dbgstudent,HWND_TOP,0,0,rect.right
      -rect.left,rect.bottom -rect.top,SWP_SHOWWINDOW);
    }
      示例程序1 演示了DBGrid 控件在類CFormView 的派生類中的使用方法,在對話框中使用DBGrid 控件的方法與此完全相同。

      以上示例是DBGrid 控件最簡單地使用,因為它們都是把控件添加到控件容器內,然后再設定其屬性,所以RemoteData 和DBGrid 控件可以像Button、Edit 控制一樣,用鼠標點幾下就可以了。下面再介紹DBGrid 控件在類Cview 或其派生類等非控件容器中的使用方法。這時就不能用上面的方法向視圖類中添加控件了,也就不能在設計時設定它們的屬性,必須在運行時使用DBGrid 和RemoteData 控件的Create() 函數創建對象,然后再設置屬性。請看示例程序2。

      二、示例程序

      按如下步驟創建:
      1、運行AppWizard 生成項目DBGrid。選擇Multiple Document,CDBGridView 的基類為CView 不變,其他仍然按默認設置處理。
      2、在項目DBGrid 中添加DBGrid 控件和Microsoft RemoteData 控件。與示例程序1 相同。
      3、在CDBGridView 類中加入兩個數據成員。一個是類CRdc 變量m_rdcstudent,另一個是類CMsDgridCtrl 變量m_dbgstudent。
      4、加入這兩個控件的子窗口ID 常數。從Developer Studio 的View 菜單中選擇Resource Sysbols 命令,然后加入ID 符號ID_RDCSTUDENT 和ID_DBGSTUDENT。
      5、用ClassWizard 映射視圖的WM_CREATE 和WM_SIZE 函數。編輯DBGidView.cpp 中的消息處理函數如下:
    int CDbgridView::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
     if (CView::OnCreate(lpCreateStruct) == -1)
          return -1;
       
       RECT r={0,0,100,30};
       
       //  create the RDC
       m_rdcstudent.Create(_T("Student"),
       WS_CHILD,r,this,IDC_RDCSTUDENT);
       m_rdcstudent.SetDataSourceName(_T("Student"));
       m_rdcstudent.SetSql
       (_T("Select *from student,section"));
       m_rdcstudent.SetUserName(_T("admin"));
       m_rdcstudent.SetPassword(_T(""));
       m_rdcstudent.SetCursorDriver(2);

       // create the DBGrid control
       &connect it to IDC_RDCSTUDENT
    m_dbgstudent.Create(_T(""),WS_VISIBLE|WS_CHILD,r,
    this,IDC_DBGSTUDENT);
    LPUNKNOWN pCursor=m_rdcstudent.GetDSCCursor();
    ASSERT(pCursor!=NULL);
    m_dbgstudent.SetDataSource(pCursor); //bind the grid
    m_dbgstudent.BindProperty(0x9, &m_rdcstudent);

    return 0;
    }

    void CDbgridView::OnSize(UINT nType, int cx, int cy)
    {
       CView::OnSize(nType, cx, cy);
       
       // TODO: Add your message handler code here
       CRect rect;
       GetClientRect(rect);
      ::SetWindowPos(m_dbgstudent,HWND_TOP,0,0,rect.right
    -rect.left,rect.bottom -rect.top,SWP_SHOWWINDOW);
    }
      6、編譯并測試程序。屏幕的顯示結果與下圖類似。
    http://www.kjueaiud.com/uploads/2007/07/1_200707042008521.jpg (39694 字節)
      以上所述只是談及DBGrid 控件在綁定方式下使用方法,那么如何在在非綁定方式下使用呢?還請朋友們多指教?!?/p>

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>