<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    CIconListBox帶圖標的列表框類

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    有時候,我們需要在列表框ListBox中插入帶圖標的文字項,這就需要自己派生一個類出來了,網上的一個CIconListBox類還不錯,網站http://www.codeguru.com/Cpp/controls/listbox/article.php/c4749/

    這里介紹下使用方法,源代碼我有改動,環境Visual Studio 2008 SP1:
    1.基于對話框的工程,名稱為IconListBoxTest;
    2.拖動控件到對話框上,按下圖所示排列:

    RFID設備管理軟件

    3.導入IconListBox.cpp和IconListBox.h兩個文件到工程,在對話框頭文件包含

    #include "IconListBox.h" 

    4.為ListBox控件,改變其屬性“Owner Draw”為“Fixed”,其“Has Strings”為“TRUE”添加變量:

    CIconListBox m_ListBox; 

    添加一個圖片列表變量:

    CImageList m_imgNormal; 

    導入圖片資源,修改其ID號為IDB_LB_IMG,在對話框的初始化函數里面添加如下代碼(可自己根據修改):

    CBitmap bmp; 
    m_imgNormal.Create(16
                       16
                       ILC_COLOR32 | ILC_MASK, 
                       10,    // 初始化圖片數量 
                       10); 
     
    ASSERT(m_imgNormal.m_hImageList); 
     
    bmp.LoadBitmap(IDB_LB_IMG); 
    m_imgNormal.Add( &bmp, -1); 
    bmp.DeleteObject(); 
    m_ListBox.SetImageList(&m_imgNormal); 
     
    for(int i = 0; i < 10 ; i++ ) 
        m_ListBox.AddString( _T("Hello World") , i ); 

    5.右邊按鈕的事件如下:

    void CIconListBoxTestDlg::OnBnClickedAdd() 

        if(UpdateData()) 
        { 
            if(!m_Str.IsEmpty()) 
                m_ListBox.AddString(m_Str,m_Img); 
            else 
                AfxMessageBox(_T("輸入文本字符串!")); 
        } 

     
    void CIconListBoxTestDlg::OnBnClickedInsert() 

        if(UpdateData()) 
        { 
            if( m_Str.IsEmpty() ) 
            { 
                AfxMessageBox(_T("輸入文本字符串!")); 
                return
            } 
            int iSel = m_ListBox.GetCurSel(); 
            if( iSel != LB_ERR ) 
                m_ListBox.InsertString(iSel, m_Str , m_Img); 
            else 
                AfxMessageBox(_T("選擇左邊列表其中一項!")); 
        }     

     
    void CIconListBoxTestDlg::OnBnClickedDelete() 

        int iSel = m_ListBox.GetCurSel(); 
        if( iSel != LB_ERR ) 
            m_ListBox.DeleteString( iSel ); 
        else 
            AfxMessageBox(_T("選擇左邊列表其中一項!")); 

     
    void CIconListBoxTestDlg::OnBnClickedChangeicon() 

        if(UpdateData()) 
        { 
            int iSel = m_ListBox.GetCurSel(); 
            if(iSel != LB_ERR ) 
                m_ListBox.SetItemImage(iSel,m_Img); 
            else 
                AfxMessageBox(_T("選擇左邊列表其中一項!")); 
        } 

     
    void CIconListBoxTestDlg::OnBnClickedImgList() 

        if(UpdateData()) 
        { 
            if( m_Check ) 
                m_ListBox.SetImageList(&m_imgNormal); 
            else 
                m_ListBox.SetImageList(); 
            m_ListBox.RedrawWindow(); 
        } 
        else 
        { 
            ((CButton *)GetDlgItem(IDC_IMG_LIST))->SetCheck(m_Check); 
        } 

    6.編譯完成。效果如下:

    RFID設備管理軟件

     

    源代碼下載:http://download.csdn.net/source/2816256

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全