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

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

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    利用activex控件實現對表格的顯示與操作

    發布: 2007-7-14 21:11 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 25次 | 進入軟件測試論壇討論

    領測軟件測試網 安紅

      在許多軟件系統中,表格控件在對數據進行瀏
    覽、編輯等操作方面都有良好表現。遺憾的是,Visual
    C++并沒有提供直接支持表格操作的通用控制類。不
    過,我們可以通過注冊VisualC++5.O的ActiveX
    控件中的Microsoft FlexGrid Control,version5.0
    控件并添加到項目中來實現對表格的顯示及操作。下
    面將結合具體實例,介紹如何在對話框中加入表格控
    件并實現對表格數據的顯示、修改和保存。文中程序
    是在中文WindowsNT4.0環境下,用VisualC++·5.0
    編寫的。
      1.在對話框中加入表他控件
      啟動VisualC++5.0,利用AppWizard建立應
    用程序框架。在AppWizard第一步(Stepl)選擇基
    于對話框(Dialogbased)的應用程序類型!ぴ
    AppWizard第二步(Step2)選中ActiveX Controls
    復選框,表示本應用程序支持ActiveX控件。其他均
    接受缺省設置,按下"OK"按鈕后AppWizard將自動
    生成一個以對話框為主窗口的應用程序工程
    Testtmp。
      單擊Project菜單,選擇Add To Project菜單
    項,再單擊Components and Controls菜單項,出現
    Components and Controls Gallery對話框,雙擊
    Registered ActiveX Controls列表項,在隨后的列
    表框中選擇Mcrosoft FlexGrid Control,version
    5.0控件;然后按下lnsert按鈕,則該表格控件類
    及相關文件便插入到當前工程文件中。同時該控件將
    出現在對話框編輯器的控件工具欄中,可以像其他控
    件那樣拖放到正在建立的對話框中。
      在ResourceView中,選中IDD_TESTTMP_DIALOG
    對話框并單擊鼠標右鍵,在Properties對話框中將
    Language屬性改為Chinese(P.R.C)。然后打開
    IDD_TESTTMP_DIALOG對話框并適當調整其大小,拖
    動控件工具欄上的表格控件到該對話框的適當位置,
    可通過修改表格控件屬性確定表格的行、列數目。
    2:  顯示表格數據
      以顯示天線方向圖數據為例。假設天線方向圖
    數據以二進制格式保存在文件AEA02000.D01中,要
    顯示在表格中的數據包括序號、方位角和增益值三
    項。利用ClassWizard為主窗口類CTesttmpDlg的表
    格控件添加控件變量WGrid,然后在該類的對話框
    初始化函數OnInitDialog()中做如下處理:
      (1) 打開天線方向圖文件,將數據保存在結構
    中。
    (2)生成表格標題欄名稱、行高及行寬
    char Title[3][30]  =
    (  _T("序號 NO"),
       _T("方位 AZ (度)°),
       _T("增益 GAIN  (dB)"),
    for(i  = O;i<3;i++)
    {m_Grid.SetRow(0);  //定位到第1行
    m_Grid.SetCol(i);    //定位到第i列
    m_Grid.SetText(Title[i]);    //設置標題欄名稱
          m_Grid,SetColwidth(0,750);  //設置第1列表格項寬度
          m_Grid.SetColAlignment(0.  3);  //設置第1列標題名稱以居中方
                                            式排列
      (3)根據天線方向圖文件的記錄數靈活設置表
    格控件的行數及行高。
          m_Grid.SetRows(sTianF.BCount+l);    //設置表格控 件的行數
          for(int  i= O;  i < sTianF.BCount+1 ;i++)
    m_Grid.SetRowHeight(i,270);//設置第I行的高度
    (4)將天線方向圖數據逐行顯示在表格控件中。
    Char cStr[8];
    for(i=1;   i  < STianF.BCOUnt+1;i++)
    m_Grid.SetRow(i);    //定位到第i行
    m_Grid.SetCol(0);    //定位到第1列
    Sprintf(CStr,"%d",i);    //將序號轉化為字符型
    m_Grid.SetText(CStr);  //在第i行第1列顯示序號
    Sprintf(CStr,"%d%,sTianF.STianX[i-1].iAz/10);  //將方
            位角數據從整理轉化為字符型
    m_Grid.SetCol(1);    //定位到第2 列
    m_Grid.SetText(cStr);    //在第i行第2 列顯示方位角數據
    sprintf(cStr,"%5.2f",sTianFn.sTianX[i-l].dPower);//將
    增益值從浮點型轉化為字符型
    m_Grid.SetCol(2);//定位到第3列
    m_Grid.SetText(cStr);//在第i行第3列顯示天線增益數據
    (3)修改并保存表格數據
    假設只對天線方向圖中的增益數據做修改,而其他數據不能被修改

      在ResourceView中,打開IDD_TESTTMP_DIALOG
    對話框,選中控件工具欄上的編輯控件插入到該對話
    框的適當位置。在ClassWizard中為CTesttmpDlg的
    編輯控件添加控件變量m_Edit,然后在該類的對話
    框初始化函數OnInitDialog()中添加如下代碼:
      m_Edit.ShowWindow(SW_HIDE);//隱藏該編輯控件
    (1)修改表格數據

      在ClassWizard中為表格控件添加Click消息響
    應函數 OnClickGrid(),為編輯控件添加
    EN_KILLFOCUS消息響應函數OnKillfocusEdit()。
    在消息響應函數mClickGrid()中做如下處理:
    ·做邊界檢查,如果鼠標擊中的表格項是標題
    行、表格第1、2列,則立即返回。

    .計算鼠標擊中的表格項的行寬width和行高
    height,以及該表格項左上角在對話框客戶區上的屏幕坐標x和y值。
      ·激活編輯控件并顯示在表格的相應位置上以便接受輸入數據的修改。
    CString S;

      
      S=m_Grid.GetText();//取得該表格項顯示的數據
      m_Edit.MoveWindow(X,y,Width,height);//改變編輯控作的顯示位
                     置及大小
      m_Edit.ShowWindow(SW_SHow);//設置該編輯控件為可見狀態
      m_Edit.EnableWindow(TRUE);//激活該編輯控件窗口
    m_Edlt.SetFocus();//設置輸入焦點
      m_Edit.SetWindowText(S);//將表格項數據顯不在該編輯控件窗口
      在消息響應函數OnKillfocusEdit()中做如下處
    理:
    · 藏編輯控件并使控件窗口無效。
    ·如果最新鍵入的數據與表格項原顯示數據不
    同,則用新數據代替原數據。
      
      m_Grid.SetText(str);//重新設置表格項數據
      (2)保存表格數據
      在ClassWizard中,為"保存"按鈕添加
    BN_CLICKED消息響應函數OnSave(),.然后在消息響應函數OnSave()中做如下處理:
      ·逐行獲取天線方向圖的增益數據并保存在結構中。
      CString cstr;
    or(int  i  = l;  i < sTianF.BCount+l;  i++)
    m_Grid.SetRow(i);    //定位到第i行
    m_Grid.SetCol(2);    //定位到第3列
    cstr = m_Grid.GetText();    //獲取該行列的表格項數據
    sTian.sTianx[i-1].dPower=atof(cstr);//將數據保存
                       到結構中
    將結構數據寫到文件AEA02000.D01中保存起來
    最后生成的用戶界面如圖1所示。

    序號 方位 增益
    1 -122 ...
    2 ...   
    3 ... ...
    4     
    5 ...   
    6     
    7     
    8     
    9     
    10     
    11     
    12

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>