有n多个窗口句柄;HWND h_wnd1,h_wnd2,......
现在我想遍历这些句柄,但一个一个做太烦如:
switch(i)
{
case 1:
   h_mywnd=h_wnd1;
   break;
case 2:
 ....
 }
我想用一个循环如:
for(int i=0;i<n;i++)
{
h_mywnd=h_wndi;//问题就在这里,我不知h_wndi该如何处理;
}

解决方案 »

  1.   

    不连续???...
    但你定义一个数组来保存这些hwnd后不就连续了吗...
      

  2.   

    因为h_wnd1对应一个picture 控件,而picture控件是在程序开始运行以前就定下来的。比如ID:IDC_STATIC_1  对应  m_preview1;
                 IDC_STATIC_2  对应  m_preview2;
                  ....
                hwnd1=m_preview1.GetSafeWnd();
                hwnd2=m_preview2.GetSafeWnd();
                 ....
     我刚才提的问题不够清楚,实际上是如何写"m_previewi";
           比如:
          for(int i=0;i<n;i++)
             {
             arrayHwnd[i]=m_previewi.GetSafeWnd();//这里怎么写
             }
      

  3.   

    可以这样...
    把IDC_STATIC_1--IDC_STATIC_2等等的这些ID号手工改为连续的...
    然后用GetDlgItem(
    for (int i=0;i<n;i++)
    {
        arrayHwnd[i]=GetDlgItem(IDC_STATIC_1+i)
    }
      

  4.   

    IDC_STATIC_1对应的数字...你明白吧...