选择图标的ComboBox[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 mynote 的 blog

    图标选择的组合框,我想大家在qq的个人设置中肯定看见过,里面可以有很多头像,你可以任意的选择一个。下面就是建立一个选择图标的组合框的简单步骤:

1.这一步,很显然,得把.cpp和.h文件加到你的工程中去。

2.在你的工程中加一个组合框的控件,组合框的风格按默认的设置就行了。

3.利用vc的类向导给组合框定义一个控件变量。

4.在头文件中用ccioncombox代替ccombobox,那样你才能真正用下面的这个类。

    上面的步骤好了之后,你就可以用下面的函数来插入,选择和删除图标了。
public:
    virtual int addicon(lpctstr lpsziconfilename);
    virtual int inserticon(int nindex, lpctstr lpsziconfilename);
    virtual int selecticon(lpctstr lpsziconfilename);
    virtual int selecticon(int nindex);
    virtual int deleteicon(lpctstr lpsziconfilename);
    virtual int deleteicon(int nindex);

    下面的这个函数是拿来显示图标的。
protected:
    virtual void onoutputicon(lpdrawitemstruct lpdis, bool bselected); 

    你还可以通过下面的函数来设置大小,以适应图标大小不同而不同。
m_cbmyiconcombobox.setitemheight(-1, m_cbmyiconcombobox.m_sizeicon.cy + 6);

    当然还有其他的功能等你去发现,如果你真的很喜欢这项功能,你还是去把全部的代码看一下,这样会对你的编程更有好处,由于本人的水平有限,我还不能把它给扩展了,我希望有读者能把它给扩展了。下面是该类的.h和.cpp文件:

//头文件
// iconcombobox.h : header file
//

#ifndef _iconcombobox_h_
#define _iconcombobox_h_

//////////////////////////////////////////////////////
//                                                  //
//                   ciconcombobox                  //
//                                                  //
// copyright (c) joel wahlberg enator networks 1997 //
//               joel.wahlberg@enator.se            //
//                                                  //
//////////////////////////////////////////////////////

class ciconcombobox : public ccombobox
{
// contruction/destruction
public:
    ciconcombobox();
    virtual ~ciconcombobox();

// attributes
public:
    csize m_sizeicon;

// operations
public:
    virtual int addicon(lpctstr lpsziconfile);
    virtual int inserticon(int nindex, lpctstr lpsziconfile);
    virtual int selecticon(lpctstr lpsziconfile);
    virtual int selecticon(int nindex);
    virtual int deleteicon(lpctstr lpsziconfile);
    virtual int deleteicon(int nindex);

// implementation
protected:
    virtual void onoutputicon(lpdrawitemstruct lpdis, bool bselected);

// overrides
    virtual int addstring(lpctstr lpszstring);
    virtual int insertstring(int nindex, lpctstr lpszstring);
    virtual int deletestring(int nindex);

本文关键:选择图标的ComboBox
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top