如何在一个CDialog 里面去得到另一个CDialog里面的一个CheckBox的壮态
   设定壮态我知道是HWND hCheck=::GetDlgItem(page1.GetSafeHwnd(),IDC_CHECK1);
   
  可是如何去得到他确实不知道应该如何!   也就是我在一个主Dialog里面有一个TabCtrl,里面每一页都是一个 CDialog我每个页上都有N多个Check,现在我要在主对话框里对这些的状态进行改变都要去控制它,不知道各位能不能出个思路,我现在是在一个保有存按键里去检查每一个页上面的Check的状态,然后根据这些状态去改变后台数据!  不过我这样很烦,要写很多CODE,所以不知道各位有什么好主意

解决方案 »

  1.   

    http://search.csdn.net/Expert/topic/900/900973.xml?temp=.747143
      

  2.   

    我也知道用GetCheck来获的他的状态,可是我不是在当前的对话框啊,我是在别一个对话框里啊!
      这个该如何去做啊!
      

  3.   

    我的愚蠢的办法是:
    1。在PrpertySheet中维护一个数组:typdef CArray<CWnd*,CWnd*> CWndPtrArray;
    定义一个成员变量CWndPtrArray m_wa;
    在AddPage时,把你所需的控件的指针存入数组,如:m_wa.Add(page1.GetDlgItem(IDC_CHECK1))
    2.在需要检查状态的地方,取得父PropertySheet的指针和成员变量m_wa
    CWndPtrArray& wa = pSheet->m_wa;
    for(int i=0;i<wa.GetSize();i++)
    {
    switch(GetWindowLong(wa[i].m_hWnd,GWL_ID))
    {
    case IDC_CHECK1:
     do you code...
     break;
    case IDC_CHECK2:
     ...
    }
    }
      

  4.   

    我现在的做法是在stdafx.h里面定义一个结构变量,把所有的check项用一个变量关联,当在页面里单击的有勾的时候就把该项的变量设为1否则为0
      也许这个方法太笨啦,不过没办法啦