由于要给我们学院的老师改一个化工实验软件,所以不得不学MFC,从0开始,所以遇到好多问题,上百度,谷歌搜了好多实在搜不到只好上来向大虾请教.现在我说一下具体情况,我在菜单栏添加了一个设置菜单,点击的时候会弹出一个对话框,让输入塔板数,一个整数值.现在要在另一个文件用到这个输入的值,根本这个值来生成一个数组,数组的大小就是由输入的值来决定.
原来的定义是定死了 CString str[6]={"0","2","4","6","8","10"};现在想根据输入的值来动态创建一个数组,但是就是不知道怎么把这个值传进来.希望大虾们能帮忙解答一下,这个问题已经困绕我2天了,真的快疯掉了.

解决方案 »

  1.   

    安装MSDN了吗?
    如果安装了,搜索一下吧,
    vector <CString > s;就是定义一个字符串的动态数组。
    #include <vector>//这个地方是必须的
    #include <iostream>int main( )
    {
       using namespace std;   //这个地方是必需的。
       vector <int> v1;//int可以换成其他的,如:CString,这个就是一个动态数组
       
       v1.push_back( 1 );//这个就使插入语句
       if ( v1.size( ) != 0 )
          cout << "Last element: " << v1.back( ) << endl;   v1.push_back( 2 );
       if ( v1.size( ) != 0 )
          cout << "New last element: " << v1.back( ) << endl;
    }
    这个是一个例子。
    vector <CString > vectorCString;
    vectorCString.push_back("0");
    vectorCString.push_back("2");
    vectorCString.push_back("4");
    vectorCString.push_back("6");
    vectorCString.push_back("8");
    vectorCString.push_back("10");
      

  2.   

    创建动态数组方法很多: 要么如楼上所说利用STL里面的vector, list等等, 还可以利用MFC里面自带的CPtrArray类定义对象m_ptrArray;
    添加元素:m_ptrArray.Add(str);
    调用元素: 
    for(int i = 0; i < m_ptrArray.GetSize(); i++)
        (CString)m_ptrArray.GetAt(i);
    具体的实现lz可以自己上网查下;
      

  3.   

    知道你输入值的对话框ID,假设为ID_DLGCString msg;
    GetDlgItemText(ID_DLG,msg,10);
    就可以把对话框的内容了
    //把字符串转成INT
    int m = msg.strtoi();