VC++ 如何使用组合框的SetItemDataPtr 和GetItemDataPtr 操作函数指针

如题.在VC6.0中如何使用组合框的SetItemDataPtr和GetItemDataPtr操作函数指针,并执行该函数指针对应的函数.我现在只有这些分,还望高手不吝赐教... 如题.
在VC6.0中 如何使用组合框的SetItemDataPtr 和GetItemDataPtr 操作函数指针,并执行该函数指针对应的函数.

我现在只有这些分,还望高手不吝赐教!
首先感谢hibok2的回答,你给的demo试验通过!

补充一下,这里说的函数指针是本类中的函数指针.或者说是本类中一系列函数的函数指针数组.
比如: 在类CMyDialog中的成员函数CMyDialog::func1(),CMyDialog::func2(),...,CMyDialog::funcn()
展开
 我来答
无尽星空ljm
2010-08-07 · TA获得超过1794个赞
知道小有建树答主
回答量:441
采纳率:0%
帮助的人:0
展开全部
给你写了个示例。

// 定义一个函数类型
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);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式