char *itemData = new char[ LID_SIZE ];
memset( itemData, 0, LID_SIZE );
itemData = (char*)m_lstPic.GetItemDataPtr( m_lstPic.GetCurSel() );
之前已经正确绑定ItemDataPtr
得到的itemData是乱码,这是怎么回事,谢谢啦
LID_SIZE已定义为常量
GetItemDataPtr()
答案:2 悬赏:50 手机版
解决时间 2021-01-28 08:21
- 提问者网友:世勋超人
- 2021-01-28 05:16
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-01-28 05:52
ItemDataPtr这个不是获取Item文本的吧。。这个是获取Item指针的
获取文本是CListBox::GetText / CComboBox::GetLBText (不知道你的是什么控件)
获取文本是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);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯