手動でコントロールを追加する方法
コードとの ダイアログ エディターを使用してダイアログ ボックスにコントロールを追加します。 または追加するに、自分できます。
コントロール オブジェクトを独自に作成するには、通常 C.C++ のダイアログまたはフレームウィンドウ オブジェクトの C++ コントロール オブジェクトを埋め込みます。フレームワークの他のオブジェクトと同様に、コントロールはと、ビルドが必要です。親ダイアログ ボックスまたはフレーム ウィンドウの作成時にコントロールの 生成(&&C),create,作成,生成 のメンバー関数をダイヤルする必要があります。ダイアログ ボックスでは、これは通常 OnInitDialogで、 OnCreateフレーム ウィンドウの場合は、されます。
どのようにダイアログ クラスの派生クラス宣言の CEdit のオブジェクトを宣言し、 OnInitDialogの 生成(&&C),create,作成,生成 のメンバー関数をダイヤルする方法を次の例に示します。CEdit のオブジェクトは、埋め込みオブジェクトとして宣言されているため、ダイアログ オブジェクトの作成、 生成(&&C),create,作成,生成 の独自のメンバー関数で初期化する必要があるときに自動的に構築されます。
class CCustomDialog : public CDialog
{
CEdit m_edit;
virtual BOOL OnInitDialog();
};
OnInitDialog の次の関数は四角形を設定し、 Windows のエディット コントロールを作成し、 CEdit の初期化されていないオブジェクトに接続するに 生成(&&C),create,作成,生成 をダイヤルします。
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 を返します。ゼロ以外の値を返した場合、ダイアログ マネージャーは、ダイアログ ボックス内の項目リストの最初のコントロールの項目にフォーカスを設定します。ほとんどの場合、ダイアログ エディターを使用してダイアログ ボックスにコントロールを追加する必要があります。