MFC中动态创建一个控件

24 篇文章 0 订阅

在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的对话框资源
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值