永发信息网

GetItemDataPtr()

答案:2  悬赏:50  手机版
解决时间 2021-01-28 08:21
  • 提问者网友:世勋超人
  • 2021-01-28 05:16
char *itemData = new char[ LID_SIZE ];
memset( itemData, 0, LID_SIZE );
itemData = (char*)m_lstPic.GetItemDataPtr( m_lstPic.GetCurSel() );
之前已经正确绑定ItemDataPtr
得到的itemData是乱码,这是怎么回事,谢谢啦

LID_SIZE已定义为常量
最佳答案
  • 五星知识达人网友:一把行者刀
  • 2021-01-28 05:52
ItemDataPtr这个不是获取Item文本的吧。。这个是获取Item指针的
获取文本是CListBox::GetText / CComboBox::GetLBText (不知道你的是什么控件)
全部回答
  • 1楼网友:天凉才是好个秋
  • 2021-01-28 06:01
给你写了个示例。 // 定义一个函数类型 typedef void func(int a, int b); // maxv和minv分别为两个不同的item调用的函数 void maxv(int a, int b) { afxmessagebox("max" ); } void minv(int a, int b) { afxmessagebox("min"); } void cmydialog::oninitdialog() { ...... int n; n = m_combo.addstring("max"); m_combo.setitemdataptr(n, (void*)maxv); //将item和函数关联 n = m_combo.addstring("min"); m_combo.setitemdataptr(n, (void*)minv); //将item和函数关联 ....... } void cmydialog::oncbnselchangecombo1() { // 获得当前选中的item int n = m_combo.getcursel(); // 得到与item关联的函数指针,并将它转换为func* func* p = (func*)(m_combo.getitemdataptr(n)); // 执行这个函数 (*p)(2, 3); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯