リスト ボックス スタイル

CreateWindow 関数または CreateWindowEx 関数を使用してリスト ボックスを作成するには、LISTBOX クラス、適切なウィンドウ スタイル定数、および次のスタイル定数を使用してリスト ボックスを定義します。 コントロールの作成後、注記を除き、これらのスタイルは変更できません。

定数 説明
LBS_COMBOBOX
コンボ ボックスの一部であることをリスト ボックスに通知します。 これにより 2 つのコントロール間での調整が可能になり、統一された UI が表示されます。 コンボ ボックス自体でこのスタイルを設定する必要があります。 スタイルがコンボ ボックス以外により設定される場合、リスト ボックスはコンボ ボックスの子として不適切であるとそれ自体を見なし、エラーという結果となります。
LBS_DISABLENOSCROLL
リスト ボックス内の項目が少なく、スクロールする必要がない場合、水平または垂直スクロール バーを使用できない状態で表示します。 このスタイルを指定しない場合、リスト ボックス内の項目が少ないとき、スクロール バーは非表示になります。 このスタイルは WS_VSCROLL スタイルや WS_HSCROLL スタイルと共に使用する必要があります。
LBS_EXTENDEDSEL
SHIFT キーとマウスまたは特殊キーの組み合わせを使用することで複数の項目を選択できます。
LBS_HASSTRINGS
文字列で構成される項目がリスト ボックスに含まれていることを指定します。 アプリケーションで LB_GETTEXT メッセージを使用して特定の項目のテキストを取得できるよう、リスト ボックスには文字列のメモリとアドレスが保持されます。 既定では、オーナーが描画したリスト ボックスを除くすべてのリスト ボックスにこのスタイルが与えられます。 オーナーの描画によるリスト ボックスは、このスタイルの有無にかかわらず作成できます。
オーナーの描画によるリスト ボックスにこのスタイルがない場合、LB_GETTEXT メッセージにより、項目に関連付けられているデータ (項目データ) が取得されます。
LBS_MULTICOLUMN
水平方向にスクロールされる複数列リスト ボックスを指定します。 列の幅はリスト ボックスによって自動的に計算されます。あるいは、アプリケーションでは LB_SETCOLUMNWIDTH メッセージを使用することで幅を設定できます。 リスト ボックスに LBS_OWNERDRAWFIXED スタイルが与えられている場合、リスト ボックスから WM_MEASUREITEM メッセージが送信されるとき、アプリケーションでは幅を設定できます。
LBS_MULTICOLUMN スタイルのリスト ボックスは水平方向にスクロールできず、WM_VSCROLL メッセージを受信しても無視されます。
LBS_MULTICOLUMN スタイルと LBS_OWNERDRAWVARIABLE スタイルを組み合わせることはできません。 両方が指定された場合、LBS_OWNERDRAWVARIABLE が無視されます。
LBS_MULTIPLESEL
ユーザーがリスト ボックス内の文字列をクリックまたはダブルクリックするたびに文字列選択のオンとオフが切り替わります。 ユーザーは任意の数の文字列を選択できます。
LBS_NODATA
データなしのリスト ボックスを指定します。 リスト ボックス内の項目数が 1000 を超えるとき、このスタイルを指定します。 データなしのリスト ボックスには LBS_OWNERDRAWFIXED スタイルも与える必要がありますが、LBS_SORT スタイルと LBS_HASSTRINGS スタイルは与えてはなりません。
データなしのリスト ボックスは、項目の文字列もビットマップ データも含まれない点を除き、オーナーの描画によるリスト ボックスに似ています。 項目を追加、挿入、または削除するコマンドでは常に、指定されたあらゆる項目データが無視されます。リスト ボックス内で文字列を検索する要求は常に失敗します。 項目を描画する必要があるとき、WM_DRAWITEM メッセージがオーナー ウィンドウに送信されます。 DRAWITEMSTRUCT 構造体の itemID メンバーが WM_DRAWITEM メッセージと共に渡されると、描画する項目の行番号が指定されます。 データなしのリスト ボックスでは、WM_DELETEITEM メッセージは送信されません。
LBS_NOINTEGRALHEIGHT
リスト ボックスの作成時にアプリケーションによって指定されたサイズとリスト ボックスのサイズが厳密に一致することを指定します。 通常、リスト ボックスで部分的に項目が表示されないようにリスト ボックスのサイズが設定されます。
LBS_OWNERDRAWVARIABLE スタイルのリスト ボックスについては、LBS_NOINTEGRALHEIGHT スタイルが常に適用されます。
LBS_NOREDRAW
変更が行われたときにリスト ボックスの外観が更新されないことを指定します。
コントロールの再描画状態を変更するには、WM_SETREDRAW メッセージを使用します。
LBS_NOSEL
表示できるが選択できない項目がリスト ボックスに含まれていることを指定します。
LBS_NOTIFY
ユーザーがリスト ボックス項目をクリックするか (LBN_SELCHANGE)、項目をダブルクリックするか (LBN_DBLCLK)、選択を取り消した (LBN_SELCANCEL) とき、リスト ボックスから親ウィンドウに通知コードが送信されます。
LBS_OWNERDRAWFIXED
リスト ボックスのオーナーがその内容を描画することと、リスト ボックス内の項目が同じ高さになることを指定します。 リスト ボックスが作成されたときに WM_MEASUREITEM メッセージが、リスト ボックスの視覚的側面が変更されたときに WM_DRAWITEM メッセージがオーナー ウィンドウで受信されます。
LBS_OWNERDRAWVARIABLE
リスト ボックスのオーナーがその内容を描画することと、リスト ボックス内の項目の高さが変化することを指定します。 リスト ボックスが作成されたとき、ボックス内の項目ごとに WM_MEASUREITEM メッセージが、リスト ボックスの視覚的側面が変更されたときに WM_DRAWITEM メッセージがオーナー ウィンドウで受信されます。
このスタイルにより LBS_NOINTEGRALHEIGHT スタイルが有効になります。
LBS_MULTICOLUMN スタイルが指定されている場合、このスタイルは無視されます。
LBS_SORT
リスト ボックス内の文字列をアルファベット順に並べ替えます。
LBS_STANDARD
リスト ボックス内の文字列をアルファベット順に並べ替えます。 ユーザーがリスト ボックス項目をクリックするか、項目をダブルクリックするか、選択を取り消すと、親ウィンドウで通知コードを受信します。 リスト ボックスには垂直のスクロール バーがあり、そのすべての辺に罫線が付きます。 このスタイルでは、LBS_NOTIFY スタイル、LBS_SORT スタイル、WS_VSCROLL スタイル、WS_BORDER スタイルが組み合わされます。.
LBS_USETABSTOPS
その文字列を描画するとき、リスト ボックスでタブ文字を認識し、拡張できるようにします。 LB_SETTABSTOPS メッセージを使用し、タブ停止位置を指定できます。 既定のタブ位置はダイアログ テンプレート単位で 32 離れています。 ダイアログ テンプレートの単位は、ダイアログ ボックス テンプレートで使用されるデバイス非依存の単位です。 ダイアログ テンプレート単位から画面単位 (ピクセル) に測定を変換するには、MapDialogRect 関数を使用します。
LBS_WANTKEYBOARDINPUT
ユーザーがキーを押したとき、リスト ボックスが入力可能な状態になっているとき、リスト ボックスのオーナーは WM_VKEYTOITEM メッセージを受信することを指定します。 これにより、アプリケーションてばキーボード入力で特殊な処理を実行できます。

必要条件

要件 Value
ヘッダー
Winuser.h