以手動方式加入控制項
您可以使用 對話方塊編輯器 將控制項新增至對話方塊,或使用程式碼自行新增控制項。
若要自行建立控制項物件,您通常會在 C++ 對話方塊或框架視窗物件中內嵌 C++ 控制項物件。 與架構中的其他許多物件一樣,控制項需要雙階段建構。 您應該呼叫控制項的 Create 成員函式,作為建立父對話方塊或框架視窗的一部分。 對於對話方塊,這通常是在 OnInitDialog 中 完成,以及 OnCreate 中的 框架視窗。
下列範例示範如何在衍生對話類別的類別宣告中宣告 CEdit
物件,然後在 中 OnInitDialog
呼叫 Create
成員函式。 因為物件 CEdit
宣告為内嵌物件,所以在建構對話方塊物件時會自動建構物件,但是它仍必須使用自己的 Create
成員函式初始化。
class CCustomDialog : public CDialog
{
CEdit m_edit;
virtual BOOL OnInitDialog();
};
下列 OnInitDialog
函式會設定矩形,然後呼叫 Create
以建立 Windows 編輯控制項,並將它附加至未初始化 CEdit
的物件。
BOOL CCustomDialog::OnInitDialog()
{
CDialog::OnInitDialog();
CRect rect(85, 110, 180, 210);
m_edit.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP |
ES_AUTOHSCROLL | WS_BORDER,
rect, this, IDC_EXTRA_EDIT);
m_edit.SetFocus();
return FALSE;
}
建立編輯物件之後,您也可以呼叫 SetFocus
成員函式,將輸入焦點設定為 控制項。 最後,您會從 OnInitDialog
傳回 0,以顯示您設定焦點。 如果您傳回非零值,對話方塊管理員會將焦點設定為對話方塊專案清單中的第一個控制項專案。 在大部分情況下,您會想要使用對話方塊編輯器將控制項新增至對話方塊。