代码如下:CLogProperties LogProperties("Test Properties");     
//CLogProperties是继承CPropertySheet的类,在构造函数中会调用AddPage添加页面LogProperties.Create(NULL,"test",WS_CHILD | WS_VISIBLE,CRect(10,10,10,10),pParentWnd,IDC_TestListCtrl);... ...CWnd *AAA = LogProperties.GetDlgItem(ID_APPLY_NOW);
AAA取不到应用按钮的句柄,为空。
如上述代码的意思,请问怎样才能取到属性页中[应用]按钮,对其进行操作?

解决方案 »

  1.   

    在属性页AddPage包含的Page中,再GetDlgItem()来获得..
      

  2.   

    这样试试:
    CWnd *AAA = LogProperties.GetParent()->GetDlgItem(ID_APPLY_NOW);
      

  3.   

    没注意看,你是用Create创建的CPropertySheet,这种情况下是没有按钮的,你可以在自己的对话框上加按钮。
      

  4.   

    动态Create的button显示不出来
    http://topic.csdn.net/u/20081225/17/a7e43742-d1cc-4df9-9525-588f0d79c31c.html
      

  5.   

    楼主去下载这个里面的代码:
    http://www.vckbase.net/document/viewdoc/?id=398
    Property3文件夹下更改和添加下面的代码:void CProperty3Dlg::OnButton1() 
    {
    CMySheet sheet("属性页对话框");
    CPage1 page1;
    CPage2 page2;
    sheet.AddPage( &page1 );
    sheet.AddPage( &page2 ); sheet.Create( );
    sheet.ShowWindow(SW_SHOW);

    CWnd* pWnd = &sheet.m_button;  //这个位置改成楼主的CWnd *AAA = sheet.GetDlgItem(ID_APPLY_NOW); 也可以取到值 pWnd->ShowWindow(SW_HIDE); MSG msg;                          //定义消息 一下是锁定窗口 防止函数退出后窗体销毁

    m_bContiune=TRUE; 

    for(int ii=0;ii<2;ii++)

    if( m_bContiune == TRUE )
    {
    ii = 0;                     //状态改变退出 

    GetMessage( &msg, NULL,0, 0 );//检查消息 TranslateMessage(&msg);   //解释消息 

    DispatchMessage(&msg);    //分配消息
    }

    }BOOL CProperty3Dlg::DestroyWindow() 
    {
    m_bContiune = FALSE;
    return CDialog::DestroyWindow();
    }void CProperty3Dlg::OnClose() 
    {
    m_bContiune = FALSE;
    CDialog::OnClose();
    }void CProperty3Dlg::OnOK() 
    {
    m_bContiune = FALSE;

    CDialog::OnOK();
    }void CProperty3Dlg::OnCancel() 
    {
    m_bContiune = FALSE;

    CDialog::OnCancel();
    }
      

  6.   

    由于是Create的CProperties,好像是没有应用按钮!
    我记得是DoModal的时候有!
    你可能需要自己create一个这个按钮!