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

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

  • <strong id="5koa6"></strong>
  • 用VC++項目中導入VB 窗體

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    南京 王 珂 你可以在VC ++的Dialog Editor(對話編輯器)環境下導入VB 窗體。VB 設計的窗體類似于一個對話框和一個放置控件的包容器(container)。當你在導入VB 窗體時,一些放置在窗體上的控件也會隨之被導入:對于窗體上的ActiveX 控件,只有當它已經被
    南京 王 珂

      你可以在VC ++的Dialog Editor(對話編輯器)環境下導入VB 窗體。VB 設計的窗體類似于一個對話框和一個放置控件的包容器(container)。當你在導入VB 窗體時,一些放置在窗體上的控件也會隨之被導入:對于窗體上的ActiveX 控件,只有當它已經被插入VC ++項目中之后,才會隨著VB 窗體一齊導入;對于VB 開發環境中提供的一些本地控件(如Drive List Box、File List Box 等),則可能遇到一些麻煩;而那些嵌套在控件內的控件也要受到一些制約。大多數限制來自于VB 運行時對話框與Windows 運行時對話框的不同表現,本文后面將詳細說明有關限制。步驟如下:

      1、啟動VC ++編程環境。
      2、從Insert(插入)窗體上,單擊Resource(資源)。
      3、在Insert Resource(插入資源)對話框中單擊Import(導入)按鈕。
      4、在Import Resource(導入資源)對話框中將File Type(文件類型)設置為VB Form 并選擇所需導入的窗體,單擊Import 按鈕。
      當然,如前所述,當導入一些較為特別的VB 窗體時,可能出現一些錯誤信息。比如筆者在VB 6.0 下建立了一個窗體,窗體上分別放置了Picture Box、Frame、Label、Microsoft FlexGrid Control 以及Drive List Box 五個控件,并在Label 控件的DblClick 事件上編寫了一些代碼,窗體如下圖所示:
    http://www.kjueaiud.com/uploads/2007/07/1_200707042008522.jpg (41794 字節)
      在VC ++環境下運行AppWizard 建立一個項目,接受默認設置,并按照前面提到的方法插入該窗體,則會出現如下警告:

     ?。猅he ActiveX control "MSFlexGridLib.MSFlex-Grid" is not installed in the project and will be ignored.

      該警告表明在項目中沒有插入Microsoft FlexGrid Control 6.0 控件。

     ?。猄yntax error in VB form description.

      該警告出現是因為在對控件(Label)相關事件(DblClick)編寫了VB 代碼,以及VB 在調用控件時與VC ++語法不一致而造成的。

      另外,當導入包含.FRX 文件的VB 窗體時,還可能出現如下錯誤信息:

      The form's binary data file "Form1.FRX" can't be opened.

      在導入窗體之后,還會出現一些奇怪的現象,比如Drive List Box 已經轉變為Windows 標準的List Box 等等。

      由此可見,對于將VB 窗體導入到VC ++中存在著諸多限制,它們主要可以分為對VB 本地控件和對象的限制、對VB 控件屬性的限制以及對VB 窗體中嵌套控件的限制。

      1. 對VB 本地控件和對象的限制

      下面列出的控件在導入到VC ++項目中時性能可能會削減甚至被忽略:

     ?。?Drive List Box 以及Dirctory List Box:導入之后將會被轉換成Windows List Box。
     ?。?MDI 窗體:導入之后將會轉換成普通的對話框,并且菜單會被忽略。
     ?。?Line 和Shape 控件
     ?。?水平和垂直滾動條。
     ?。?Timer 控件。
     ?。?Printer、Screen、Clipboard、App 等對象會被忽略。
      2. 對VB 控件屬性的限制

      VB 窗體上大多數控件的屬性能夠被成功導入到VC ++中,而對于個別的屬性僅被VB 控件支持,在標準的Windows 對話框中沒有與之相等的屬性。比如個別控件的Font 和Color 等屬性,對此也要予以注意。

      3. 對VB 窗體中嵌套控件的限制

      嵌套控件被VB 所支持,而不能夠導入到VC ++環境。在VB 環境中,控件能夠被嵌套到其他控件之中(如Picture、Frame 等),用戶可以通過設置最外層的控件的Visible 屬性來決定所有嵌入的控件的Visible 屬性,而在VC ++環境中,控件是否可見是一個運行時特征。

      對于此類問題,一個解決的辦法是將交疊的控件移入獨立的對話框中,通過編寫需要的代碼來創建相關對話框,達到顯示控件的目的,最后將主對話框設置為Parent Window(父窗體)。

      因此,為了避免麻煩,建議在向VC ++項目中導入VB 窗口時能夠做到以下幾點:

     ?。?在導入窗體之前檢查窗體中涉及的ActiveX 控件,并在VC ++項目中插入相應控件。
     ?。?不要使用文中提到的VB 本地控件。
     ?。?不要設計過于復雜的窗體,不要在設計時設置Picture Box 等控件的Picture 屬性,以免生成.FRX 文件。
     ?。?不要在VB 環境下編寫任何代碼,以免出現錯誤。
     ?。?不要使用嵌套控件。  

    原文轉自: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>