久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

VC MFC組合框(CComboBox)控件

 筱肆 2014-03-21

VC MFC組合框(CComboBox)控件

組合框:

自繪組合框(顯示圖標(biāo))

要了解的概念:組合框是由一個(gè)編輯框和列表框組合而成的.
CComboBox類里要了解的函數(shù):
SetItemHeight//設(shè)置列表框項(xiàng),,或編輯框高度,,第一個(gè)參數(shù)為-1表示設(shè)置編輯框高度,0表示列表框項(xiàng),,第二個(gè)參數(shù)是要設(shè)置的高度
SetItemData//為列表框里的項(xiàng)關(guān)聯(lián)一個(gè)DWORD值,,第一個(gè)參數(shù)表示列表框項(xiàng)索引,第二個(gè)參數(shù)指明具體值
GetItemData//只有一個(gè)參數(shù),,列表框項(xiàng)索引,返回該索引關(guān)聯(lián)的值,。

首先像自繪按鈕類一樣,,從控件類中派生出一個(gè)子類(組合框類名:CComboBox),派生的類名為:CNewComboBox然后向工程導(dǎo)入五個(gè)圖標(biāo),ID號(hào)分別為:

IDI_NORMAL1,、IDI_NORMAL2,。。,。IDI_NORMAL5

往CNewComBox類添加一個(gè)函數(shù),,用于設(shè)置圖標(biāo)ID和文本內(nèi)容,如下:
int CNewComboBox::SetItemIcon(UINT nID,LPCTSTR lpszString)//第一個(gè)參數(shù)是圖標(biāo)ID號(hào),,第二個(gè)是文本內(nèi)容
{
int index=AddString(lpszString);
SetItemData(index,nID);
return index;
}

然后添加CNewComBox類的虛函數(shù)DrawItem,DrawItem函數(shù)的代碼如下:

CDC dc;
 dc.Attach(lpDrawItemStruct->hDC);//組合框DC
 CRect itemRect(lpDrawItemStruct->rcItem);//項(xiàng)區(qū)域
  int nSate=lpDrawItemStruct->itemState;//項(xiàng)狀態(tài)
  int nIndex=lpDrawItemStruct->itemID;//項(xiàng)索引
      if(nIndex!=-1)
 {

       if(nSate&ODS_SELECTED)//如果選中該項(xiàng)
         dc.FillSolidRect(&itemRect,RGB(124,231,169));
    else
         dc.FillSolidRect(&itemRect,RGB(2,94,193));
  UINT uID=GetItemData(nIndex);
     POINT pt;
    pt.x=itemRect.left;
    pt.y=itemRect.top;
    dc.DrawIcon(pt,LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(uID)));//畫(huà)圖標(biāo)
    itemRect.left+=35;

    dc.SetBkMode(TRANSPARENT);
    CString str;
    GetLBText(nIndex,str);
    dc.DrawText(str,itemRect,DT_LEFT|DT_VCENTER|DT_SINGLELINE);//顯示文本
 }
   dc.Detach();

接著在對(duì)話框編輯區(qū)給對(duì)話框添加一個(gè)組合框控件,,組合框的樣式:類型:下拉列表、所有者繪制:固定,、有字串:勾

并為控件關(guān)聯(lián)一個(gè)控件變量m_NewCom,,類型為CNewComboBox

然后在對(duì)話框初始化函數(shù)OnInitDialog里添加如下代碼:
m_NewCom.SetItemIcon(IDI_NORMAL1,"Kdjfkd");
  m_NewCom.SetItemIcon(IDI_NORMAL2,"kjdkfj");
  m_NewCom.SetItemIcon(IDI_NORMAL3,"dkjfdj");
  m_NewCom.SetItemIcon(IDI_NORMAL4,"kdjfkd");
  m_NewCom.SetItemIcon(IDI_NORMAL5,"kdjfkd");
     m_NewCom.SetItemHeight(-1,35);
  m_NewCom.SetItemHeight(0,35);

最后,記得要包含類頭文件 "NewComboBox.h"

編譯,、運(yùn)行,,效果如下:


 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多