有谁知道如何在 VS2005 C++ 中将 CPen 对象绑定(bind)到列表框?
我可以通过某种转换将它作为 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) 中,以使项目和实际项目之间的链接更容易一些。
祝你好运。
最大
关于c++ - 将 CPen 绑定(bind)到列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7002147/