有谁知道如何将CPen对象绑定到VS2005 C ++中的列表框?
我可以作为ToString进行某种转换吗?
我正在创建一个不同笔的自定义列表,供用户选择。
谢谢。
COLORREF rgbRED = (255,0,0);
CPen penRed(PS_SOLID,3,rgbRED);
CDialog::OnInitDialog();
ShowWindow(SW_SHOW);
UpdateData();
lbLineWeight.InsertString(penRed);
最佳答案
2个选择。
(简单)使用带有字符串作为项目的普通CListBox,并将字符串与实际CPen之间的链接保留为自由函数(或某些其他类的成员),并且您将必须在字符串之间进行一对一关联当前选择的项目(通常是索引号)和您拥有的CPen信息。
(稍微复杂一点)从CListBox派生您自己的类,并在内部保留CPen数据,您仍然必须在该新类中保留有效CPen的列表,并在所选项目和对象之间进行一对一关联。实际CPen;作为奖励,您可以使派生的CListBox所有者绘制,而不是使用字符串,您可以在列表项中绘制每种笔的某种表示形式。
另一个难题是,您可以将CPen作为用户数据添加到每个CListBox项(CListBox :: SetItemData),以使该项与实际项之间的链接更加容易。
祝好运。
最高