CCheckListBoxクラス

2021年6月16日

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を使ってチェック・リスト・ボックスを描くことができます。それ以外の場合は、CListBox::CompareItem関数とCCheckListBox::DrawItemおよびCCheckListBox::MeasureItem関数をオーバーライドする必要があります。

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

継承階層

CObject

CCmdTarget

CWnd

CListBox

CCheckListBox

要件

ヘッダー: afxwin.h

 

WordPress

Posted by kinya