图标选择的组合框,我想大家在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);