1. gzyueqian
      18529173453
      首頁 > 新聞中心 > > 正文

      用C++ Builder創建組合框

      更新時間: 2007-05-22 17:53:56來源: 粵嵌教育瀏覽量:843


        本文介紹了在Win 98環境下,如何利用C++ Builder和Windows的Api函數創建滿足用戶特定需求的Combo框,并且通過Api函數擴充了C++ Builer標準組件的功能。

        在C++ Builder 下,其所帶的Combo控件當內容發生變化時將調用OnChange的Combo1Change事件句柄。這時事件句柄將向系統發送一條基于Combo的CB—FINDSTRING消息,在消息中傳遞編輯字符串內容。該消息的SendMessage返回值是下拉框中個匹配條目的Index值,如果在下拉列表框中找到相匹配的條目,Comobo1Change句柄將發送一條基于Combo的CB—SETEDITSEL消息,該消息的參數確定從插入點到字符串結尾的部分將被選擇。結果是被選中的部分是作為消息搜索結果顯示在Combo的Text值中。

        具體實現:

        1、在進入C++ Builder 4.0以后,在窗體上畫一個CmoboBox1,在Items中輸入anlantic faloncs、China、Japanese、Amercia等字符串。

        2、創建ComboBox1的OnChange句柄,并填入如下代碼:

        void —fastcall TForm1::ComboBox1Change(TObject *Sender)

         {

        String value = ComboBox1-〉Text ;

        if (lastkey == ′\b′ || lastkey == VK—DELETE)// 如果用戶輸入的是Delete鍵或是Tab鍵,搜索不進行//

        {

         lastkey = 0 ;

         return ;

        }

        lastkey = 0 ;

        if (ComboBox1-〉SelStart != value.Length ())//如果用戶的光標在輸入字符串的中間,搜索不進行//

         return ;

        int index = SendMessage (ComboBox1-〉Handle, CB—FINDSTRING, -1, (LPARAM) value.c—str ()) ;

        //在下來列表框尋找與用戶輸入字符串相匹配的字符串的索引值//

        if (index 〉= 0)//如果索引值〉0//

        {

         ComboBox1-〉ItemIndex = index ;

         SendMessage (ComboBox1-〉Handle, CB—SETEDITSEL, 0, MAKELPARAM (value.Length (), -1)) ;

        //發送CB_SETEDITSEL消息//

        }

         }

        3、創建ComboBox1的KeyDown句柄,并填入如下代碼:

         void —fastcall TForm1::ComboBox1KeyDown(TObject *Sender, WORD &Key,

        TShiftState Shift)

         {

         lastkey = Key ;//保存的鍵//

         }

        4、在頭文件中增加如下變量:

         Private:WORD LastKey;

        5、編譯運行。當用戶輸入在輸入框中輸入Chi時,便出現China整個字符串。

        以上方法在Pwin 98和C++Builder 4.0 Enterprise版中實現。

        有時想讓控件實現一些不大可能的功能,試試Windows的Api 函數,或許它可以讓你夢想成真。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 中国久久精品综合网 | 一级a爱片国产亚洲精品 | 日韩欧美tv一区二区在线观看 | 伊人狼人久久青青草原 | 五月婷婷婷婷在线视频 | 亚洲欧美在线精品2021 |