有两个属性页,现设         property0 和 property1;
每个属性页上有一个按钮,        |           | 
现设                      button0   和 button1
对应关系如上。请问:
如何用button0控制button1的可用和不可用?GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
这个方法在一个窗体里面还可用,但是上述情况就不好用了
为什么?

解决方案 »

  1.   

    是另外一个进程吗?可以通过消息传递呀,在参数里设置TRUE或责FALSE。
      

  2.   

    你要先取得另一个窗体的句柄hWnd;
    能后再用::GetDlgItem(
      HWND hDlg,       // handle of dialog box
      int nIDDlgItem   // identifier of control
    ); 获取你的Button1的句柄;
    之后用
    ::BOOL EnableWindow(
      HWND hWnd,     // handle to window
      BOOL bEnable   // flag for enabling or disabling input
    );
      

  3.   

    Sheet中有两个页面的Dlg变量,直接使用就可以了。
    在page2中声明一个变量,来保存是否Enablewindow
    然后在page2中的OnActive中根据变量设置button2;
      

  4.   

    CPropertySheet* sheet = (CPropertySheet*) GetParent();
    CLogin * pPage=(CLogin*)sheet->GetPage(3);
    pPage->m_buttoninfo.EnableWindow(true);
    m_buttoninfo是IDC_BUTTON_INFO的一个CButton映射,这样用没问题吧
    但是总出现异常错误。