{A}{S0}简介
大家好。这是我在CodeProject上的第一篇文章,我希望你觉得它有用。我的文章是有关的OwnerDraw MFC中的ListBox我开发接受文本和图标。最后一件事是,我希望你能率的文章,这样我就可以知道你的意见。非常感谢。列表框的功能
大家都知道,经常ListBox中,你将在Visual Studio 6只接受文字和控制工具栏的下拉。但我在我的ListBox的是三个额外的功能:接受旁边的文字图形图标(ICO)文件。您可以决定在ListBox(左或右)的文字和图标的位置。
您可以拖动ListBox中的图标文件(ICO),他们将被自动添加。要做的事情开始之前
有设计中应采取intonbsp的一些程序,在使用thenbsp前考虑; COwnerDrawListBox类。首先打开Visual Studio中的资源"选项卡,选择对话框中,你会把你的ListBox中,并从控制栏中拖动一个ListBox和调整这样的对话:
,然后打开属性对话框中的ListBox和选择的样式"选项卡,更改喜欢这幅画改变的属性:{S2}
你必须改变所有者绘制风格变量,因为我们的ListBox包含文字和画,然后取消选择排序和检查垂直滚动,如上图所示的图标。之后,选择下一个选项卡(扩展样式)和检查接受如下所示的文件:
最后一件事,你做了之后,你有一个变量,并将它附加到ListBox控件,所以你可以使用和添加项目,但可以肯定的,你从我们的类COwnerDrawListBox的变量,而不是CListBox的。使用代码
首先,你必须添加的OwnerDrawListBox。cpp和h文件到项目中。让我们假设您正在使用一个基于对话框的MFC项目作为示范项目,如果项目名称是的OwnerDraw,然后在COwnerDrawDlg类,你应该包括OwnerDrawListBox文件。#include "OwnerDrawListBox.h"
然后,假设的地方,我们要在OnInitDialog()函数,并从COwnerDrawListBox类对象在列表框中添加项目被称为m_OwnerListBox,所以才前行,{C}
这样调用成员函数Add():m_OwnerListBox.Add("Cafe", AfxGetApp()->LoadIcon(IDI_CAFE));
宏观IDI_CAFE图标添加和命名的项目资源。然后有两个其他的帮助功能,我来帮助你设置的图标和文字的位置SetIconPosition和SetTextPosition。如果你想设置一个位置,然后你需要设置的其他否则其位置设置是将绘制和其他不会被绘制的位置。您可以使用这样的两个功能:m_OwnerListBox.SetTextPosition(COwnerDrawListBox::ITEM_LEFT);
m_OwnerListBox.SetIconPosition(COwnerDrawListBox::ITEM_RIGHT);
参数COwnerDrawListBox:ITEM_RIGHT或COwnerDrawListBox:ITEM_LEFT传递功能SetIconPosition或SetTextPosition是您要设置ListBox中的文本或图标的价值。如果你没有设置的图标和文字或者岗位,他们将设置为默认文本将在右边的位置和图标将在左边。
完毕之后,你必须调用函数的destroy()删除所有用于在COwnerDrawListBox类的指针,并没有允许任何内存泄漏发生这样的:
关于我m_OwnerDrawListBox.Destroy();
我的名字是米娜纳比勒埃拉拉,我作为一个在金字塔系统开发的软件工程师(PSD)和我CodeProect asnbsp的第一篇文章的工作,我以前说过,sonbsp,我想听听你的意见,评论,如果任何人想要问的什么,只是邮件我在,或给我留言,我承诺,我会答复。非常感谢。| GT,GT; MonMonltlt