• MFC中动态创建一个控件


    在View类中动态创建一个Edit控件如下:  
       
      editT1.Create(ES_MULTILINE   |   WS_CHILD   |   WS_VISIBLE   |   WS_TABSTOP   |   WS_BORDER,CRect(0,0,50,20),this,   IDC_EDITT1);  
       
      现在想实现类似对话框中的数据交换功能。  
       
      我的方法是:  
      void   CMatlabPrintView::DoDataExchange(CDataExchange*   pDX)    
      {  
      //   TODO:   Add   your   specialized   code   here   and/or   call   the   base   class  
      CView::DoDataExchange(pDX);  
      //{{AFX_DATA_MAP(CMatlabPrintView)  
      DDX_Text(pDX,   IDC_EDITT1,   m_dT1);  
      //}}AFX_DATA_MAP  
      }  
       
    在运行DoDataExchange时,你的编辑框还没有生成,IDC_EDITT1和m_dT1当然关联不上.  
      _____________________________________________________________________________  
      我同意着个说法,所以我的做法是:  
      在初始化(OnInitDialog())函数里加:  
                        editT1   =   new   CEdit();//要加这条语句  
      editT1->Create(ES_MULTILINE   |   WS_CHILD   |   WS_VISIBLE    
      |   WS_TABSTOP   |   WS_BORDER,CRect(0,0,50,20),this,   IDC_EDITT1);  
      在函数的开头声名一个全局的控件变量:CEdit   *editT1;  
      在函数的其他地方使用editT1去处理这个edit,如:editT1->SetWindowText("edit");

      IDC_EDITT1为自定义资源ID

      VC里程序的资源定义,后面的数字只是为了表示特定的资源,避免重复,具体的值并没有意义。
    #define IDD_ABOUTBOX 100 就是说有个ID为IDD_ABOUTBOX的对话框资源
  • 相关阅读:
    第二周
    第一周
    构建之法阅读笔记之三
    冲刺一(10)
    冲刺一(9)
    用户模板和用户场景
    冲刺一(8)
    第10周总结
    冲刺一(7)
    冲刺一(6)
  • 原文地址:https://www.cnblogs.com/dongzhiquan/p/1994780.html
Copyright © 2020-2023  润新知