在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的對話方塊資源