首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么定义成宏

2014-01-01 
如何定义成宏?CComboBox * pCombo (CComboBox *)this-GetDlgItem(IDC_COMBOPARAM1)int index pCombo

如何定义成宏?
CComboBox * pCombo = (CComboBox *)this->GetDlgItem(IDC_COMBOPARAM1);
int index = pCombo->GetCurSel();
switch (index)
{
case 0:
m_min1 = m_item.item[EFF][MIN];
m_max1 = m_item.item[EFF][MAX];
break;
case 1:
m_min1 = m_item.item[FF][MIN];
m_max1 = m_item.item[FF][MAX];
break;
case 2:
m_min1 = m_item.item[I1][MIN];
m_max1 = m_item.item[I1][MAX];
break;
case 3:
m_min1 = m_item.item[IM][MIN];
m_max1 = m_item.item[IM][MAX];
break;
case 4:
m_min1 = m_item.item[ISC][MIN];
m_max1 = m_item.item[ISC][MAX];
break;
case 5:
m_min1 = m_item.item[PM][MIN];
m_max1 = m_item.item[PM][MAX];
break;
case 6:
m_min1 = m_item.item[VM][MIN];
m_max1 = m_item.item[VM][MAX];
break;
case 7:
m_min1 = m_item.item[VOC][MIN];
m_max1 = m_item.item[VOC][MAX];
break;
default:
break;
}

如何把里面的case语句定义成宏,重复率太高。
[解决办法]

CComboBox * pCombo = (CComboBox *)this->GetDlgItem(IDC_COMBOPARAM1);
 int index = pCombo->GetCurSel();
 int *i2pv[]={&EFF,&FF,&I1,&IM,&ISC,&PM,&VM,&VOC};
 m_min1 = m_item.item[*i2pv[index%8]][MIN];
 m_max1 = m_item.item[*i2pv[index%8]][MAX];

[解决办法]
引用:
Quote: 引用:

CComboBox * pCombo = (CComboBox *)this->GetDlgItem(IDC_COMBOPARAM1);
 int index = pCombo->GetCurSel();
 int *i2pv[]={&EFF,&FF,&I1,&IM,&ISC,&PM,&VM,&VOC};
 m_min1 = m_item.item[*i2pv[index%8]][MIN];
 m_max1 = m_item.item[*i2pv[index%8]][MAX];


是这样定义的
enum ITEM{ISC=0,VOC,PM,FF,I1,EFF,IM,VM,RS,RSH,IREV,ENVTEMP,SURFTEMP};

这样不是更加简单了,你只要和case的index对应上就行了

热点排行