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必要があります。

チェックリスト ボックスは、ダイアログ テンプレートから作成することも、コード内で直接作成することもできます。

継承階層

CObject

CCmdTarget

CWnd

CListBox

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_HASSTRINGSLBS_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_NCCALCSIZEWM_NCCREATEWM_CREATEWM_GETMINMAXINFOします。

これらのメッセージは、基底クラスの 、、、およびOnGetMinMaxInfoメンバー関数によって既定でCWnd処理されます。 OnNcCalcSizeOnCreateOnNcCreate 既定のメッセージ処理を拡張するには、派生クラスにメッセージ マップを追加し、前のメッセージ ハンドラーメンバー関数をオーバーライドします。 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構造体のメンバーはitemStateDRAWITEMSTRUCT実行する描画アクションを定義します。

既定では、この関数は既定のチェックボックス リストを描画します。このリストは、それぞれ既定のサイズのチェックボックスを持つ文字列のリストで構成されます。 チェックボックスのリスト サイズは、次で指定した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

これらのスタイルの詳細については、「ボタン のスタイル」を参照してください

関連項目

MFC サンプル TSTCON
CListBox クラス
階層図