您的位置:首页 > 其它

MFC中动态创建一个控件

2009-07-27 15:57 288 查看
在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的对话框资源
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: