我试图调用一个在其他地方的函数内部定义的条件,但我不知道是否可能。 此函数是类的成员:
void CMainDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
int ii=M_TabCtrl1.GetCurSel();
if(ii==0)
{
GetDlgItem....
GetDlgItem....
}
else if(ii==1)
{
///GetDlgItem....
///GetDlgItem....
}
else
{
////
}
}
// TODO: Add your control notification handler code here
*pResult = 0;
}
我试图直接在其他地方调用并执行以下循环,但我不知道如何。
if(ii==0)
{
GetDlgItem....
GetDlgItem....
}
答案 0 :(得分:4)
如果你想从其他地方调用一段代码,你需要使它成为一个函数。然后,您可以调用此新函数两次:从原始代码位置,以及您想要再次使用它的位置:
void your_function()
{
// Your 'loop'
// Note that 'if' is not a loop but a condition
if(ii==0)
{
GetDlgItem....
GetDlgItem....
}
}
void CMainDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
...
your_function();
...
}
// Somewhere else, call it again:
void something_else()
{
...
your_function();
...
}
答案 1 :(得分:2)
C ++没有允许直接在程序中间输入的入口点的旧Fortran概念。在C ++中,函数或方法只有一个入口点:它的开头。
最好放一个干净的结构:如果可以从不同的点调用一段代码,使其成为一个函数或一个方法,然后从你需要的地方调用它。