CCheckListBox
クラス
Windows のチェックリスト ボックスの機能を提供します。
構文
class CCheckListBox : public CListBox
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CCheckListBox::CCheckListBox |
CCheckListBox オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CCheckListBox::Create |
Windows チェックリスト ボックスを作成し、オブジェクトにCCheckListBox アタッチします。 |
CCheckListBox::DrawItem |
所有者描画リスト ボックスの視覚的な側面が変更されたときにフレームワークによって呼び出されます。 |
CCheckListBox::Enable |
チェックリスト ボックス項目を有効または無効にします。 |
CCheckListBox::GetCheck |
アイテムのチェック ボックスの状態を取得します。 |
CCheckListBox::GetCheckStyle |
コントロールのチェック ボックスのスタイルを取得します。 |
CCheckListBox::IsEnabled |
項目が有効かどうかを判断します。 |
CCheckListBox::MeasureItem |
所有者描画スタイルのリスト ボックスが作成されるときに、フレームワークによって呼び出されます。 |
CCheckListBox::OnGetCheckPosition |
項目の チェック ボックスの位置を取得するためにフレームワークによって呼び出されます。 |
CCheckListBox::SetCheck |
アイテムのチェック ボックスの状態を設定します。 |
CCheckListBox::SetCheckStyle |
コントロールのチェック ボックスのスタイルを設定します。 |
解説
"チェック リスト ボックス" には、ファイル名などの項目の一覧が表示されます。 リスト内の各項目には、ユーザーがチェックまたはクリアできるチェック ボックスが横にあります。
CCheckListBox
は、リストに複数のテキスト文字列が含まれているため、所有者描画コントロールに対してのみ使用されます。 最も単純なチェックリスト ボックスには、テキスト文字列とチェック ボックスが含まれていますが、テキストは必要ありません。 たとえば、各項目の横に チェック ボックスがある小さなビットマップの一覧を作成できます。
独自のチェックリスト ボックスを作成するには、独自のクラスCCheckListBox
を派生させる必要があります。 独自のクラスを派生するには、派生クラスのコンストラクターを記述し、次に .Create
リスト ボックスから親 (通常は派生 CDialog
したクラス) に送信された Windows 通知メッセージを処理する場合は、メッセージ マップ エントリとメッセージ ハンドラー メンバー関数を各メッセージの親クラスに追加します。
各メッセージ マップ エントリの形式は次のとおりです。
ON_Notification(id
, memberFxn
)
ここで id
、通知を送信するコントロールの子ウィンドウ ID と、 memberFxn
通知を処理するために記述した親メンバー関数の名前を指定します。
親の関数プロトタイプは次のとおりです。
afx_msg void memberFxn();
特 CCheckListBox
に関連するメッセージ マップ エントリは 1 つだけです (ただし、メッセージ マップ エントリ CListBox
も参照してください)。
ON_CLBN_CHKCHANGE
ユーザーがアイテムのチェックボックスの状態を変更しました。
チェックリスト ボックスが既定のチェックリスト ボックス (既定のサイズのチェック ボックスを持つ文字列のリスト) の場合は、既定値CCheckListBox::DrawItem
を使用してチェックリスト ボックスを描画できます。 それ以外の場合は、関数とCCheckListBox::MeasureItem
関数をCListBox::CompareItem
オーバーライドするCCheckListBox::DrawItem
必要があります。
チェックリスト ボックスは、ダイアログ テンプレートから作成することも、コード内で直接作成することもできます。
継承階層
CCheckListBox
必要条件
ヘッダー:afxwin.h
CCheckListBox::CCheckListBox
CCheckListBox
オブジェクトを構築します。
CCheckListBox();
解説
2 つの手順でオブジェクトを CCheckListBox
構築します。 まず、Windows チェックlist ボックスを初期化し、オブジェクトにアタッチする、呼び出Create
しからCCheckListBox
派生したクラスをCCheckListBox
定義します。
例
CCheckListBox myCheckListBox;
myCheckListBox.Create(LBS_HASSTRINGS | LBS_OWNERDRAWFIXED,
CRect(10, 10, 100, 100), this, IDC_MYCHECKLISTBOX);
CCheckListBox::Create
Windows チェックリスト ボックスを作成し、オブジェクトにCCheckListBox
アタッチします。
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
パラメーター
dwStyle
チェックリスト ボックスのスタイルを指定します。 スタイルは、(リスト内のすべての項目が同じ高さである) または LBS_OWNERDRAWVARIABLE
(リスト内の項目がさまざまな高さである) のいずれかであるLBS_HASSTRINGS
LBS_OWNERDRAWFIXED
必要があります。 このスタイルは、他のリストボックススタイルと組み合わせることができます。LBS_USETABSTOPS
rect
チェックリスト ボックスのサイズと位置を指定します。 CRect
オブジェクトまたは構造体をRECT
指定できます。
pParentWnd
チェックリスト ボックスの親ウィンドウ (通常はオブジェクト) をCDialog
指定します。 NULL は指定できません。
nID
チェックリスト ボックスのコントロール ID を指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
2 つの手順でオブジェクトを CCheckListBox
構築します。 まず、派生したCcheckListBox
クラスを定義してから呼び出Create
します。これにより、Windows チェックlist ボックスが初期化され、 CCheckListBox
. サンプルについては、「CCheckListBox::CCheckListBox
」を参照してください。
実行するとCreate
、Windows は、チェックlist-box コントロールにメッセージを送信WM_NCCALCSIZE
WM_NCCREATE
WM_CREATE
WM_GETMINMAXINFO
します。
これらのメッセージは、基底クラスの 、、、およびOnGetMinMaxInfo
メンバー関数によって既定でCWnd
処理されます。 OnNcCalcSize
OnCreate
OnNcCreate
既定のメッセージ処理を拡張するには、派生クラスにメッセージ マップを追加し、前のメッセージ ハンドラーメンバー関数をオーバーライドします。 OnCreate
たとえば、新しいクラスに必要な初期化を実行するためにオーバーライドします。
チェックリスト ボックス コントロールに次のウィンドウ スタイルを適用します。
WS_CHILD
いつもWS_VISIBLE
通常はWS_DISABLED
ほとんどWS_VSCROLL
垂直スクロール バーを追加するにはWS_HSCROLL
水平スクロール バーを追加するにはWS_GROUP
コントロールをグループ化するにはWS_TABSTOP
このコントロールへのタブ移動を許可するには
CCheckListBox::DrawItem
所有者が描画したチェックリスト ボックスの視覚的な側面が変更されたときにフレームワークによって呼び出されます。
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
パラメーター
lpDrawItemStruct
必要な描画の DRAWITEMSTRUCT
種類に関する情報を含む構造体への長いポインター。
解説
itemAction
構造体のメンバーはitemState
、DRAWITEMSTRUCT
実行する描画アクションを定義します。
既定では、この関数は既定のチェックボックス リストを描画します。このリストは、それぞれ既定のサイズのチェックボックスを持つ文字列のリストで構成されます。 チェックボックスのリスト サイズは、次で指定したCreate
サイズです。
このメンバー関数をオーバーライドして、既定ではない所有者描画チェックリスト ボックスの描画を実装します。チェック たとえば、文字列ではないリストボックス、高さ可変アイテムを含むリストボックス、左側にないチェックボックスなどです。 アプリケーションは、このメンバー関数の終了前に指定された表示コンテキスト用に lpDrawItemStruct
選択されたすべてのグラフィックス デバイス インターフェイス (GDI) オブジェクトを復元する必要があります。
チェックリスト ボックスの項目がすべて同じ高さではない場合は、チェックリスト ボックス スタイル (でCreate
指定) を指定LBS_OWNERVARIABLE
する必要があります。また、関数をMeasureItem
オーバーライドする必要があります。
CCheckListBox::Enable
この関数を呼び出して、チェックリスト ボックス項目を有効または無効にします。
void Enable(
int nIndex,
BOOL bEnabled = TRUE);
パラメーター
nIndex
有効にするチェックリスト ボックス項目のインデックス。
bEnabled
項目が有効か無効かを指定します。
CCheckListBox::GetCheck
指定したチェック ボックスの状態を取得します。
int GetCheck(int nIndex);
パラメーター
nIndex
リスト ボックスに含まれるチェック ボックスの 0 から始まるインデックス。
戻り値
指定したチェック ボックスの状態。 次の表に、使用可能な値を示します。
Value | 説明 |
---|---|
BST_CHECKED |
チェック ボックスがチェックされます。 |
BST_UNCHECKED |
チェック ボックスはチェックされません。 |
BST_INDETERMINATE |
チェック ボックスの状態は不確定です。 |
CCheckListBox::GetCheckStyle
この関数を呼び出して、チェックリスト ボックスのスタイルを取得します。
UINT GetCheckStyle();
戻り値
コントロールのチェック ボックスのスタイル。
解説
可能なスタイルの詳細については、「..」を参照してください SetCheckStyle
。
CCheckListBox::IsEnabled
この関数を呼び出して、項目が有効になっているかどうかを確認します。
BOOL IsEnabled(int nIndex);
パラメーター
nIndex
項目のインデックス。
戻り値
項目が有効な場合は 0 以外。それ以外の場合は 0。
CCheckListBox::MeasureItem
既定以外のスタイルのチェックリスト ボックスが作成されるときに、フレームワークによって呼び出されます。
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
パラメーター
lpMeasureItemStruct
構造体への長い MEASUREITEMSTRUCT
ポインター。
解説
既定では、このメンバー関数は何も行いません。 このメンバー関数をオーバーライドし、構造体にMEASUREITEMSTRUCT
入力して、リスト ボックス項目のディメンションチェック通知します。 スタイルを使用してチェックリスト ボックスが作成されたLBS_OWNERDRAWVARIABLE
場合、フレームワークはリスト ボックス内の各項目に対してこのメンバー関数を呼び出します。 それ以外の場合、このメンバーは 1 回だけ呼び出されます。
CCheckListBox::OnGetCheckPosition
フレームワークはこの関数を呼び出して、アイテム内のチェック ボックスの位置とサイズを取得します。
virtual CRect OnGetCheckPosition(
CRect rectItem,
CRect rectCheckBox);
パラメーター
rectItem
リスト アイテムの位置とサイズ。
rectCheckBox
アイテムのチェック ボックスの既定の位置とサイズ。
戻り値
アイテムのチェック ボックスの位置とサイズ。
解説
既定の実装では、チェック ボックス (rectCheckBox
) の既定の位置とサイズのみが返されます。 既定では、チェック ボックスはアイテムの左上隅に配置され、標準のチェック ボックス サイズです。 右側にチェックボックスが必要な場合や、チェックボックスを大きくまたは小さくしたい場合があります。 このような場合は、オーバーライドOnGetCheckPosition
して、アイテム内のチェック ボックスの位置とサイズを変更します。
CCheckListBox::SetCheck
指定したチェック ボックスの状態を設定します。
void SetCheck(
int nIndex,
int nCheck);
パラメーター
nIndex
リスト ボックスに含まれるチェック ボックスの 0 から始まるインデックス。
nCheck
指定したチェック ボックスのボタンの状態。 可能な値については、「備考」セクションを参照してください。
解説
次の表に、パラメーターに使用できる値を nCheck
示します。
Value | 説明 |
---|---|
BST_CHECKED |
指定したチェック ボックスを選択します。 |
BST_UNCHECKED |
指定したチェック ボックスをオフにします。 |
BST_INDETERMINATE |
指定したチェック ボックスの状態を不確定に設定します。 この状態は、チェック ボックス スタイルが a0/ BS_3STATE チェック のBS_AUTO3STATE 場合にのみ使用できます。 詳しくは、「ボタンのスタイル」をご覧ください。 |
CCheckListBox::SetCheckStyle
この関数を呼び出して、チェック リスト ボックスのチェック ボックスのスタイルを設定します。
void SetCheckStyle(UINT nStyle);
パラメーター
nStyle
チェックリスト ボックスのチェック ボックスのスタイルを決定します。
解説
有効なスタイルは次のとおりです。
BS_CHECKBOX
BS_AUTOCHECKBOX
BS_AUTO3STATE
BS_3STATE
これらのスタイルの詳細については、「ボタン のスタイル」を参照してください。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示