有谁知道如何将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),以使该项与实际项之间的链接更加容易。

祝好运。

最高

10-05 23:37