在使用mfc编程的时候,有时候要通过建立类向导为对话框上面的一些控件,比如说文本框,添加成员变量。这些成员变量的定义一般放在//{{AFX_DATA(对话框类名)
enum { IDD = 对话框ID };
//成员变量
//}}AFX_DATA里面。但如果手工为一个文本框在上面添加一个成员变量,在建立类向导中又不能显示出来,也就是没有和具体的文本框控件联系起来。我想知道如果想手工为文本框控件添加成员变量,怎样才能把这个变量和具体的文本框控件联系起来。如果想用一个成员数组联系几个文本框呢?要为其他的控件增加成员变量呢?
enum { IDD = 对话框ID };
//成员变量
//}}AFX_DATA里面。但如果手工为一个文本框在上面添加一个成员变量,在建立类向导中又不能显示出来,也就是没有和具体的文本框控件联系起来。我想知道如果想手工为文本框控件添加成员变量,怎样才能把这个变量和具体的文本框控件联系起来。如果想用一个成员数组联系几个文本框呢?要为其他的控件增加成员变量呢?
然后通过程序取得或者赋予控件的值
比如,取得控件的当前值(以CEdit为例)
定义
CEdit* pEdit;
pEdit = (CEdit*) GetDlgItem(IDC_EDIT1);CString buffer = pEdit->GetLine() ;
在左边选一个控件ID,按【增加变量】那相关联了
VIEW——ClassWizard——Member Variables 双击EDIT的ID,填上变量名就可以关联!
然后搜索变量名,看一下就知道了
要调用一个控件的命令就是:
回复人: SeainBlue(爱海) ( ) 信誉:100 2003-10-21 13:52:00 得分:0
可以自己设置一些肋的成员变量
然后通过程序取得或者赋予控件的值
比如,取得控件的当前值(以CEdit为例)
定义
CEdit* pEdit;
pEdit = (CEdit*) GetDlgItem(IDC_EDIT1);CString buffer = pEdit->GetLine() ; 他的方法应该可以了。
mac_forward(大麦克) ( ) 信誉:100 2003-10-21 14:48:00 得分:0
用classwizard给控件加上变量,他们自动产生关联啦!!
====================================================================我是说如果不用classwizard的话,怎么让他们关联呢?因为我想用一个数组来关联很多的文本框。不知道这个用classwizard可以完成吗?
在左边选一个控件ID,按【增加变量】那相关联了
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!====================================================================
mac_forward(大麦克) ( ) 信誉:100 2003-10-21 14:48:00 得分:0
用classwizard给控件加上变量,他们自动产生关联啦!!
====================================================================我是说如果不用classwizard的话,怎么让他们关联呢?因为我想用一个数组来关联很多的文本框。不知道这个用classwizard可以完成吗?
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
DDX_Control(...)数据交换,将变量和控件联系起来.如果不用这个机制,就用SubClassDlgItem(...)来子类化某个变量,将变量和控件联系起来
keiven()谢谢。我试一下
在类的头文件中这样定义:
//{{AFX_DATA(对话框类名)
enum { IDD = 对话框ID };
//成员变量
CStrint m_Edit[100];
//}}AFX_DATA
然后再实现文件中的::DoDataExchange(CDataExchange* pDX)函数中添加代码如下:
//{{AFX_DATA_MAP(CStorageManageView)
DDX_Text(pDX, IDC_EDIT1, m_EDIT[0]);
DDX_Text(pDX, IDC_EDIT2, m_EDIT[1]);
.......
DDX_Text(pDX, IDC_EDIT100,m_EDIT[2]);
//}}AFX_DATA_MAP
这里的IDC_EDIT1、IDC_EDIT2...IDC_EDIT100是自己给EDIT控件定义的ID,m_EDIT[0]是关联到对应ID的变量。当然你也可以这样DDX_Text(pDX, IDC_EDIT2, m_EDIT[0])关联m_EDIT[0]和IDC_EDIT2,显然这样很不明了!
DDX_Text(pDX, IDC_EDIT100,m_EDIT[99]);