日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC之ComboBox控件用法

發布時間:2025/3/12 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC之ComboBox控件用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文以實例形式較為詳細的講述了MFC中ComboBox控件的用法。分享給大家供大家參考之用。具體方法如下:

一、ComboBox簡介:

ComboBox控件是由一個文本輸入控件和一個下拉菜單組成的。用戶可以從一個預先定義的列表里選擇一個選項,同時也可以直接在文本框里面輸入文本。
從工具欄中拖一個Combo Box控件.右擊添加變量,變量名為cbBox.

二、用法:

1.為控件添加選項,指定默認選項

cbBox.AddString(_T("one")); cbBox.AddString(_T("two")); cbBox.AddString(_T("three"));

每個選項都有一個對應的索引號,跟數組下標一樣,從0開始.由于默認的排序方式是按字母先后順序所以one,two,three的索引為0,2,1

我們也可以把選項添加到指定的索引位置

cbBox.InsertString(0,_T("aaa")); //此時one,two,three的索引變為1,3,2

假如打開對話框時,我們要讓three選項為combo box的默認選項.

cbBox.SetCurSel(2); //不過我們不太可能去記住每個選項的索引,所以先查找下它的索引是多少 int index = cbBox.FindStringExact(0,_T("three")); //0表示從索引為0的選項開始查找.如果找到有叫three的選項就返回它的索引號,沒有找到返回CB_ERR也就是-1.

反過來我們已經有個選項顯示在那了要知道它的索引號是多少

int index = cbBox.GetCurSel();

2.選擇某個選項并獲取其值

先獲取索引號再根據索引號獲取值.

CString csValue; int index = cbBox.GetCurSel(); cbBox.GetLBText(index,csValue);//選項的值保存到csValues中

其實還有個更簡單的獲取值的方法,我們選項某個項之后它會顯示在文本輸入控件中.我們直接獲取就行

cbBox.GetWindowTextW(csValue);

3.查找列表中的選項

int index = cbBox.FindStringExact(0,_T("three")); //精確查找. int index = cbBox.FindString(0,_T("three")); //模糊查找.如果有選項threeabc也會返回索引值

假如下拉列表中的選項太多,你不愿意一個個的去選該怎么辦?

這時候你可以在文本框中輸入選項的前幾個字,如果匹配到個某個選項將會自動顯示在文本框中.這要用到模糊查詢

首先要添加一個ON_CBN_EDITCHANGE事件.ON_CBN_EDITCHANGE消息映射宏會把文本框中輸入值變化的消息綁定到一個函數中去處理

然后在消息處理函數中添加如下代碼:

CString temp; cbBox.GetWindowTextW(temp); //把文本框中輸入的值放到一個變量temp中 int n =cbBox.FindString(0,temp); //查找下拉列表中是否是哪個選項包含字符串temp if(n>=0) {cbBox.SetCurSel(n); //查找到的話就把選項名字顯示在文本框中 }

4.刪除選項

刪除所有選項,也可以把下拉列表置空

cbBox.ResetContent();

刪除某個選項.只能先查找到對應的索引號,再根據索引號刪除

int index = cbBox.FindStringExact(0,_T("three")); cbBox.DeleteString(index);

5.禁止在ComboBox中輸入

有時候我們希望只能在下拉框中選擇,而不允許在ComboBox中輸入。很簡單,只需把style改為Drop List即可

6.響應消息

有時候希望在ComboBox中選擇一個之后值之后,想響應一個消息。也很簡單,只需要對ComboBox的CBN_SELCHANG事件添加響應就可以了。

7.不能顯示下拉內容如何解決

在OnSize()函數中設置ComboBox的高度。
——注意要判斷窗口是否已經創建,可以用GetDlgItem(IDC_COMBO1)->GetSafeHwnd()判斷,為真表示已經創建。
然后使用MoveWindow()重新設置控件大小,高度盡量大,因為他會根據內容自動調節。這樣就可以完全顯示下拉列表的內容了。

8.Extended Combo Box選項前面帶個圖標

Extended Combo Box的功能比Combo Box更多一點.其中有個功能就是可以在選項前加個圖標.

先添加一個Extended Combo Box控件.并給它添加一個變量cbBoxE.

CImageList* pImageList; //相當于一個特殊數組,但是它保存的是圖片 pImageList = new CImageList(); pImageList->Create(32, 32, ILC_COLOR32, 0, 4); // //在資源中添加一個bmp圖片.id為IDB_BITMAP1 CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); //加載資源中的圖片 pImageList->Add(&bmp, RGB(0, 0, 0)); //添加圖片到imagelist中 cbBoxE.SetImageList(pImageList); COMBOBOXEXITEM insItem; //添加圖片選項時的參數.它是一個結構體,下面是里面一些變量的初始化 insItem.mask = CBEIF_IMAGE|CBEIF_TEXT; insItem.iItem=0; insItem.iImage=0; insItem.pszText=_T("Line 1"); cbBoxE.InsertItem(&insItem);//在控件中添加一個選項,并且選項前面有圖片

相信本文所述對大家學習VC++的MFC程序設計有一定的借鑒價值。

特別補充: 在最初將 Combo Box 控件放置進你的窗口界面的時候,記得把下拉框的縱向尺寸向下拉得稍微大一些,否則將來運行的時候根本彈不出來,哪怕已經填充了足夠多的數據選項。



總結

以上是生活随笔為你收集整理的MFC之ComboBox控件用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲视频在线免费 | 91九色偷拍 | 色玖玖综合 | 精品麻豆| 国产综合久久 | 可以免费看av| 欧美日韩在线观看一区二区 | 日韩一区二区三区精 | www.四虎.| 国产精品亚洲五月天丁香 | 九九热视 | 中文字幕123区 | 亚洲精品视频大全 | 精品一区二区三区成人免费视频 | 亚洲欧美一级 | 久久久久成人精品无码中文字幕 | 奇米888一区二区三区 | 午夜在线免费观看视频 | 亚洲视频免费观看 | 日韩三级成人 | 国产传媒国产传媒 | 九九精品视频在线 | 欧美成人女星 | 国产一级免费观看 | 黑人av| 日本午夜精品 | 91爱爱网站 | 四季av一区二区凹凸精品 | 长篇h版少妇沉沦交换 | 午夜视频一区二区三区 | 中文字幕av免费观看 | 中文字幕一级 | 影音先锋中文字幕资源 | 精品一区二区久久久 | 国产高清www| 狠狠gao| 中文字幕自拍偷拍 | 玉足脚交榨精h文 | 2019中文字幕在线视频 | 人人人妻人人澡人人爽欧美一区 | 精品视频在线免费 | 欧美性生交xxxxx久久久 | 久久影库 | 亚洲人成网址 | 久久久88| 欧美手机在线观看 | 婷婷午夜精品久久久久久性色av | 成人黄色性视频 | 高清无打码 | 麻豆tube| 成人资源站 | 91美女片黄在线观看游戏 | 伊人春色网 | 中文字幕无码精品亚洲资源网久久 | 日日干夜 | xxxx视频在线 | 国产成人av无码精品 | 免费一区二区 | 色综合视频在线观看 | 激情青青草| 欧美一二| 天天做天天爱天天爽综合网 | 久久人人爽人人爽人人片 | 欧美二区三区 | 色爽爽一区二区三区 | 91毛片在线观看 | 在线看黄的网站 | 视色视频| 亚洲视频欧洲视频 | 我和单位漂亮少妇激情 | 久久偷看各类女兵18女厕嘘嘘 | 天天干天天草 | 国产精品高潮呻吟AV无码 | 黄色成人在线免费观看 | 日本久久高清 | 在线免费观看黄网站 | 91色站| 林天顾悦瑶笔趣阁 | 女人扒开双腿让男人捅 | 久久精品一区二区在线观看 | 日韩国产欧美一区二区 | 日本精品久久久久 | 波多野结衣啪啪 | 亚洲18在线看污www麻豆 | 久久久www成人免费无遮挡大片 | 国产午夜精品免费一区二区三区视频 | 在线观看日本视频 | 日韩中文字 | 九九自拍偷拍 | 91av片| 自拍视频国产 | 大地资源中文第三页 | 成人合集 | 99婷婷 | 国产区免费观看 | 吞精囗交69激情欧美 | 亚洲中文字幕久久无码 | 亚洲永久在线观看 | 国产一区不卡在线 |