以手動方式加入控制項
您可以加入控制項,以便使用對話方塊編輯器的對話方塊或將它們新增您自己,與程式碼。
若要自行建立控制項物件,您通常會內嵌 C++ 控制項物件在 C++ 對話方塊或框架視窗物件。 如同在架構中其他許多物件,控制項需要兩階式建構。 您應該呼叫控制項的建立成員函式,在建立父對話方塊或框架視窗。 標籤的對話方塊,通常會 OnInitDialog,以及框架視窗,在 OnCreate。
下列範例會示範您可能會宣告CEdit衍生的對話方塊類別的類別宣告中的物件,然後呼叫建立成員函式,在OnInitDialog。 因為CEdit物件宣告成內嵌的物件,它會自動建構當建構對話方塊物件時,但仍必須先初始化它自己的建立成員函式。
class CCustomDialog : public CDialog
{
CEdit m_edit;
virtual BOOL OnInitDialog();
};
下列OnInitDialog函式會設定矩形,然後呼叫建立建立視窗的編輯控制項,並將它附加至未初始化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成員函式。 最後,將 0 的OnInitDialog以顯示您將焦點設定。 如果您傳回非零值,對話方塊管理員會將焦點設定在對話方塊的 [項目] 清單中的第一個控制項項目。 在大多數情況下,請使用對話方塊編輯器時,將控制項加入至您的對話方塊。