有几个问题想问问大虾们。。希望得到解答,感激不尽~~
1.现在我想做一界面,先选择一单选按钮RADIO1,然后点击打开后弹出一个新的对话框,一个RADIO好做,如果有很多呢?假设我有20个RADIO,那点击一个就打开一个新的对话框,我就需要插入20个Dialog吗?然后再新建20个类?同时也需要一个一个的写代码吗?有没有简单点的方法?2. 先选择一单选按钮RADIO1,然后点击打开后弹出一个新的对话框,如何读取单选按钮的标题,在新的对话框EDIT中显示出来。还有如何读取复选框中的文本,然后在新的对话框中的EDIT中显示出来。

解决方案 »

  1.   

    1,如果这20个对话框有共同点,完全可以创建一个对话框,分别创建20个对话框对象即可。
    2.getwindowtext得到标题
      

  2.   

    1.有点bt哦,建那么多的对话框。这个似乎只能建20的。没办法的;
    2.你可以定义全局变量,把edit中的值 给全局变量,然后再新的对话框中,把全局变量赋值给新的edit
      

  3.   

    建一个类,实例化20个对象,
    CDlg dlg[20];创建非模态对话框
    dlg[i].Creat(^^^^^^^^);
    点击一个,show一个
    dlg[i].ShowWindow();
      

  4.   

    问题是你这20个对话框是不是完成相同的功能
    如果各司其职那没什么好办法
    就是20个Dialog类
    如果是一样的比如说QQ的聊天窗口
    功能界面完全一致
    只是个别属性不同
    那就可以重复创建实例然后为不同实例设置不同属性
      

  5.   

    其实20个dlg也可以用一个dlg类的。
      

  6.   

    void CShilihuaDlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here
    CButton* pBtn1=(CButton*)GetDlgItem(IDC_RADIO1);
    CButton* pBtn2=(CButton*)GetDlgItem(IDC_RADIO2);
    CButton* pBtn3=(CButton*)GetDlgItem(IDC_RADIO3);
        CDialog1 dlg[3];
      int i;
        if(pBtn1->GetCheck() == BST_CHECKED) 
       {
      dlg[0].DoModal();
       }
        if(pBtn2->GetCheck() == BST_CHECKED) 
       {
      dlg[1].DoModal();
       }
        if(pBtn3->GetCheck() == BST_CHECKED) 
       {
      dlg[2].DoModal();
       }
    }我是这样写的,只用了3个RADION,最后的结果还是出来了,感觉代码还是挺多的。