我现在正在写一个hips的程序。我整体程序是一个对话框,点击工具栏DoModal生成一个CPropertySheet的属性页。在其属性页的结构体中AddPage几个PropertyPage页面。现在问题是在我的第一个PropertyPage页中通过Radio按钮实现不同查毒方法的选择。当选择第三项时,我的编辑框在Enable,否则,Disable。但我通过
void CGeneral_PG::OnBnClickedOnlyreport()
{
// TODO: 在此添加控件通知处理程序代码
m_nProMethod=0;
m_edtMvDir.EnableWindow(FALSE);
}void CGeneral_PG::OnBnClickedRmfile()
{
// TODO: 在此添加控件通知处理程序代码
m_nProMethod=1;
m_edtMvDir.EnableWindow(FALSE);
}void CGeneral_PG::OnBnClickedMvdir()
{
// TODO: 在此添加控件通知处理程序代码
m_nProMethod=2;
m_edtMvDir.EnableWindow(TRUE);
}BOOL CGeneral_PG::OnInitDialog()
{
CPropertyPage::OnInitDialog(); // TODO:  Add extra initialization here
UpdateData(FALSE);
if(2==m_nProMethod)
{
((CButton *)GetDlgItem(IDC_MVDIR))->SendMessage(WM_LBUTTONDOWN);
}
return TRUE;  // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}其完全无效果。不知什么原因。但我点击radio按钮却可以实现Enable和Disable的相互切换。请大家看看。
也讨论一下这些控件在属性页中的控制手段。

解决方案 »

  1.   

    你这个当然不会切换了(OnInitDialog里写了只是对话框载入的时候会判断下罢了),对EditBox的EnableWindow是有效的这个是肯定的。
    给你的PropertyPage添加成员变量,(看你的代码看得很迷糊,IDC_MVDIR是什么我不知道)。m_tabPages[0]->ShowWindow(SW_SHOW);//anthea注:默认显示第一个对话框,其他隐藏 
    m_tabPages[1]->ShowWindow(SW_HIDE); 
    m_tabPages[2]->ShowWindow(SW_HIDE); 
      

  2.   

    IDC_MVDIR  这是编辑框的ID,其实我拥有这个编辑框的控制变量,但我用哪个控制变量在通过按钮消息响应时可以响应。但当数据重新载入时,初始化该页就不能使他Enable或者Disabled了