首页 > 代码库 > 控件自绘之CListBoxST

控件自绘之CListBoxST

源代码及可执行文件下载地址:http://files.cnblogs.com/rainboy2010/CListBoxST.zip

技术分享

CListBoxST是MFC CListBox的一个派生类,小巧实用,主要的功能特色有:

  • 易于使用
  • 可以禁用列表项
  • 可以显示多行文本
  • 可以移动列表项
  • 可以显示提示信息

 使用方法

1. 添加ListBoxST.h,ListBoxST.cpp文件到你的项目中

2. 添加List Box控件,名称为IDC_LIST1,设置相应的属性:

  • Owner Draw  ->Variable
  • Has Strings    ->True
  • Notify            ->True
  • Selection       ->Single
  • Sort              ->False

3. 添加图标资源到项目中,命名为IDI_Page01~IDI_Page06,并添加以下成员变量:

    CListBoxST m_ListBox;
    CImageList m_ImageList;

4. 在OnInitDialog()方法里添加以下代码:

m_ListBox.SubclassDlgItem(IDC_LIST1,this);

HICON hIcon=NULL;
m_ImageList.Create(16,16,ILC_COLOR32|ILC_MASK,6,1);
hIcon=AfxGetApp()->LoadIcon(IDI_Page01);
m_ImageList.Add(hIcon);
hIcon=AfxGetApp()->LoadIcon(IDI_Page02);
m_ImageList.Add(hIcon);
hIcon=AfxGetApp()->LoadIcon(IDI_Page03);
m_ImageList.Add(hIcon);
hIcon=AfxGetApp()->LoadIcon(IDI_Page04);
m_ImageList.Add(hIcon);
hIcon=AfxGetApp()->LoadIcon(IDI_Page05);
m_ImageList.Add(hIcon);
hIcon=AfxGetApp()->LoadIcon(IDI_Page06);
m_ImageList.Add(hIcon);

m_ListBox.SetImageList(&m_ImageList);

m_ListBox.AddString(_T("Java is one of the most popular programming languages in the world"),0);
m_ListBox.AddString(_T("C++ is a classic,powerful programming language"),1);
m_ListBox.AddString(_T("C# is an object-oriented,high-level programming language"),2);
m_ListBox.AddString(_T("Python is a programming language that lets you work quickly and integrate systems more effectively"),3);
m_ListBox.AddString(_T("Delphi is famous Windows platform of rapid application development tools"),4);
m_ListBox.AddString(_T("VB is a Visual programming language"),5);

m_ListBox.EnableToolTips(TRUE);

 运行效果如下图所示:

技术分享

 



 

控件自绘之CListBoxST