コントロール スタイルを編集する

CreateWindow 関数または CreateWindowEx 関数を使用して編集コントロールを作成するには、EDIT クラス、適切なウィンドウ スタイル定数、および次の編集コントロール スタイルの組み合わせを指定します。 コントロールが作成された後、これらのスタイルは変更できません(特に説明を除く)。

LRESULT MsgCreate(HWND hwnd, UINT uMessage, WPARAM wparam, LPARAM lparam)
{
    lparam;
    wparam;
    uMessage;

    // Create Edit control for typing to be sent to server
    if (NULL == (hOutWnd = CreateWindow("EDIT",
                           NULL,
                           WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_LEFT | 
                           ES_MULTILINE | ES_AUTOVSCROLL,
                           0,0,0,0,
                           hwnd,
                           (HMENU) ID_OUTBOX,
                           (HINSTANCE) GetWindowLongPtr(hwnd, GWLP_HINSTANCE),
                           NULL)))
        return FALSE;
    return TRUE;
}

GitHubのクラシック サンプルWindows例。

定数

定数 説明
ES_AUTOHSCROLL
ユーザーが行の末尾に文字を入力すると、テキストを 10 文字だけ右に自動的にスクロールします。 ユーザーが Enter キーを押すと、コントロールはすべてのテキストを 0 の位置までスクロールします。
ES_AUTOVSCROLL
ユーザーが最後の行の Enter キーを押すと、テキストを 1 ページ上に自動的にスクロールします。
ES_CENTER
1 行または複数行の編集コントロールのテキストを中央揃えします。
ES_LEFT
テキストを左余白に揃えます。
ES_LOWERCASE
編集コントロールに入力されているすべての文字を小文字に変換します。
コントロールの作成後にこのスタイルを変更するには、 SetWindowLong を使用します
ES_MULTILINE
複数行の編集コントロールを指定します。 既定値は単一行の編集コントロールです。
複数行編集コントロールがダイアログ ボックスにある場合、Enter キーを押したときの既定の応答は、既定のボタンをアクティブにすることです。 キャリッジ リターンとして ENTER キーを使用するには、 ES_WANTRETURN スタイルを使用します。
複数行の編集コントロールがダイアログ ボックスに表示されず、 ES_AUTOVSCROLL スタイルが指定されている場合、ユーザーが Enter キーを押すと、エディット コントロールにできるだけ多くの行が表示され、垂直方向にスクロールされます。 ES_AUTOVSCROLLを指定しない場合、編集コントロールにはできるだけ多くの行が表示され、ユーザーが Enter キーを押すと、行を表示できないときにビープ音が鳴ります。
ES_AUTOHSCROLLスタイルを指定すると、キャレットがコントロールの右端を越えると、複数行編集コントロールが自動的に水平にスクロールします。 新しい行を開始するには、ユーザーが Enter キーを押す必要があります。 ES_AUTOHSCROLLを指定しない場合、コントロールは必要に応じて自動的に単語を次の行の先頭に折り返します。 ユーザーが Enter キーを押すと、新しい行も開始されます。 ウィンドウ サイズによって、ワードラップの位置が決まります。 ウィンドウサイズが変更されると、ワードラップ位置が変更され、テキストが再表示されます。
複数行の編集コントロールには、スクロール バーを含めることができます。 スクロール バーを含む編集コントロールは、独自のスクロール バー メッセージを処理します。 前の段落で説明したようにスクロール バーのないコントロールを編集し、親ウィンドウから送信されたすべてのスクロール メッセージを処理します。
ES_NOHIDESEL
編集コントロールの既定の動作を無効にします。 既定の動作では、コントロールが入力フォーカスを失うと選択範囲が非表示になり、コントロールが入力フォーカスを受け取ったときに選択範囲が反転します。 ES_NOHIDESELを指定した場合、コントロールにフォーカスがない場合でも、選択したテキストは反転されます。
ES_NUMBER
編集コントロールに入力できるのは数字だけです。 このセットを使用しても、編集コントロールに数字以外を貼り付けることは可能であることに注意してください。
コントロールの作成後にこのスタイルを変更するには、 SetWindowLong を使用します
編集コントロールに入力されたテキストを整数値に変換するには、 GetDlgItemInt 関数を使用します。 エディット コントロールのテキストを、指定した整数の文字列形式に設定するには、 SetDlgItemInt 関数を使用します。
ES_OEMCONVERT
エディット コントロールに入力されたテキストを変換します。 テキストは、Windows文字セットから OEM 文字セットに変換され、Windows文字セットに戻されます。 これにより、アプリケーションが CharToOem 関数を呼び出して編集コントロールのWindows文字列を OEM 文字に変換するときに、適切な文字変換が保証されます。 このスタイルは、Unicode をサポートしていないファイル システムで使用されるファイル名を含む編集コントロールに最も役立ちます。
コントロールの作成後にこのスタイルを変更するには、 SetWindowLong を使用します
ES_PASSWORD
編集コントロールに入力された各文字のアスタリスク (*) を表示します。 このスタイルは、単一行の編集コントロールに対してのみ有効です。
表示される文字を変更したり、このスタイルを設定またはクリアしたりするには、 EM_SETPASSWORDCHAR メッセージを使用します。
[!注]
バージョン 6 Comctl32.dll使用するには、マニフェストで指定します。 マニフェストの詳細については、「 Visual スタイルの有効化」を参照してください

ES_READONLY
ユーザーが編集コントロールにテキストを入力または編集できないようにします。
コントロールの作成後にこのスタイルを変更するには、 EM_SETREADONLY メッセージを使用します。
ES_RIGHT
1 行または複数行の編集コントロールでテキストを右揃えにします。
ES_UPPERCASE
編集コントロールに入力されているすべての文字を大文字に変換します。
コントロールの作成後にこのスタイルを変更するには、 SetWindowLong を使用します
ES_WANTRETURN
ユーザーが Enter キーを押しながらダイアログ ボックスの複数行編集コントロールにテキストを入力するときに、キャリッジ リターンを挿入することを指定します。 このスタイルを指定しない場合、Enter キーを押すと、ダイアログ ボックスの既定のプッシュ ボタンを押すのと同じ効果があります。 このスタイルは、1 行の編集コントロールには影響しません。
コントロールの作成後にこのスタイルを変更するには、 SetWindowLong を使用します

要件

要件
ヘッダー
Winuser.h