我给一个属性页动态添加了很多edit box,请问我该如何给这些控件添加关连变量????
我采用的是和静态一样的添加方法可是老是提示系统不支持视图操作!
补充一下我的动态生成控件函数放在oninitidlg中。

解决方案 »

  1.   

    edit box太多了阿,有320个,静态加好太费时了吧?
      

  2.   

    可以通过动态进行创建具体如下:
    在.h文件中声名 CEdit edit[320]; 
    并在.cpp中的OnInitDialg()中写如下代码
    for(int i=1;i<=320;i++)
    {
       edit[i-1].Create(....,WM_UER+i);//其中WM_UER+i为editbox的id
       edit[i-1].ShowWindow(...);
    }
    UpdateWindow(..);
      

  3.   

    这个问题我来回答,和你的做法不一样的
    这种做法是手工在窗体上创建了很多个实际的控件,然后声明相应的变量
    调用
    BOOL SubclassDlgItem(
       UINT nID,
       CWnd* pParent 
    );
    示例
    in .h
    CButton m_button[ 10 ];BOOL CYourDlg::OnInitDialog() 
    {
       CDialog::OnInitDialog();
       for( int i = 0; i < 10; i++ )
         m_button.SubclassDlgItem( IDC_BUTTON1 + i, this);   
       //IDC_BUTTON1-IDC_BUTTON10要连续,如果不连续,只好一个个的写了
       return TRUE;
    }
      

  4.   

    可以自己通过GetDlgItem(id)->GetWindowText(...)来得到数据
      

  5.   

    自己写DDX了
    in DoDataExchange
    for(int i=0;i<m_arwndEdit.GetSize(),i++){
        DDX_Control(pDX,arwndID[i],m_arwndEdit[i]);
        DDX_Text(pDX,arwndID[i],arString[i]);
    }