CComboBoxEx クラス

イメージ リストをサポートすることにより、コンボ ボックス コントロールを拡張します。

構文

class CComboBoxEx : public CComboBox

メンバー

パブリック コンストラクター

名前 説明
CComboBoxEx::CComboBoxEx CComboBoxEx オブジェクトを構築します。

パブリック メソッド

名前 説明
CComboBoxEx::Create コンボ ボックスを作成し、オブジェクトに CComboBoxEx アタッチします。
CComboBoxEx::CreateEx 指定した Windows 拡張スタイルを持つコンボ ボックスを作成し、オブジェクトに ComboBoxEx アタッチします。
CComboBoxEx::D eleteItem コントロールから項目を ComboBoxEx 削除します。
CComboBoxEx::GetComboBoxCtrl 子コンボ ボックス コントロールへのポインターを取得します。
CComboBoxEx::GetEditCtrl コントロールの編集コントロール部分へのハンドルを ComboBoxEx 取得します。
CComboBoxEx::GetExtendedStyle コントロールに使用されている拡張スタイルを ComboBoxEx 取得します。
CComboBoxEx::GetImageList コントロールに割り当てられているイメージ リストへのポインターを ComboBoxEx 取得します。
CComboBoxEx::GetItem 特定 ComboBoxEx のアイテムのアイテム情報を取得します。
CComboBoxEx::HasEditChanged ユーザーが入力して編集コントロールの内容を ComboBoxEx 変更したかどうかを判断します。
CComboBoxEx::InsertItem コントロールに新しい項目を ComboBoxEx 挿入します。
CComboBoxEx::SetExtendedStyle コントロール内の拡張スタイルを ComboBoxEx 設定します。
CComboBoxEx::SetImageList コントロールのイメージ リストを ComboBoxEx 設定します。
CComboBoxEx::SetItem コントロール内の項目の属性を ComboBoxEx 設定します。
CComboBoxEx::SetWindowTheme 拡張コンボ ボックス コントロールの表示スタイルを設定します。

解説

コンボ ボックス コントロールを作成するために使用 CComboBoxEx することで、独自のイメージ描画コードを実装する必要がなくなりました。 代わりに、イメージ リストからイメージにアクセスするために使用 CComboBoxEx します。

イメージ リストのサポート

標準のコンボ ボックスでは、コンボ ボックスの所有者は、コンボ ボックスを所有者描画コントロールとして作成してイメージを描画します。 使用 CComboBoxExする場合、描画スタイルは暗黙的に示されるため、CBS_OWNERDRAWFIXEDおよびCBS_HASSTRINGSを設定する必要はありません。 それ以外の場合は、描画操作を実行するコードを記述する必要があります。 コントロールは CComboBoxEx 、項目ごとに最大 3 つのイメージをサポートします。1 つは選択された状態用、1 つは選択されていない状態用、1 つはオーバーレイ イメージ用です。

スタイル

CComboBoxEx では、スタイルCBS_SIMPLE、CBS_DROPDOWN、CBS_DROPDOWNLIST、およびWS_CHILDがサポートされます。 ウィンドウの作成時に渡されるその他のスタイルはすべて、コントロールによって無視されます。 ウィンドウが作成されたら、メンバー関数 SetExtendedStyle を呼び出すことによって、他のコンボ ボックス スタイルをCComboBoxEx指定できます。 これらのスタイルを使用すると、次のことができます。

  • リスト内の文字列検索で大文字と小文字が区別されるように設定します。

  • スラッシュ ('/')、円記号 ('\')、ピリオド ('.') 文字を単語区切り記号として使用するコンボ ボックス コントロールを作成します。 これにより、ユーザーはキーボード ショートカット Ctrl + ARROW を使用して単語間を移動できます。

  • コンボ ボックス コントロールを、画像を表示するか表示しないように設定します。 画像が表示されない場合、コンボ ボックスは画像に対応するテキスト インデントを削除できます。

  • 狭いコンボ ボックス コントロールを作成し、そのコントロールに含まれるより広いコンボ ボックスをクリップするようにサイズを変更します。

これらのスタイル フラグについては、「CComboBoxEx の使用」で詳しく説明します。

アイテムの保持とコールバックアイテムの属性

アイテムと画像のインデックス、インデント値、テキスト文字列などの項目情報は、Windows SDK で説明されているように Win32 構造体 CO MB (メガバイト)OBOXEXITEM に格納されます。 構造体には、コールバック フラグに対応するメンバーも含まれています。

概念的な詳細な説明については、「CComboBoxEx の使用」を参照してください

継承階層

CObject

CCmdTarget

CWnd

CComboBox

CComboBoxEx

必要条件

ヘッダー: afxcmn.h

CComboBoxEx::CComboBoxEx

オブジェクトを作成するには、このメンバー関数を CComboBoxEx 呼び出します。

CComboBoxEx();

CComboBoxEx::Create

コンボ ボックスを作成し、オブジェクトに CComboBoxEx アタッチします。

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

パラメーター

dwStyle
コンボ ボックスに適用されるコンボ ボックス スタイルの組み合わせを指定します。 スタイルの詳細については 、以下の 「解説」を参照してください。

rect
コンボ ボックスの 位置とサイズである CRect オブジェクトまたは RECT 構造体への参照。

pParentWnd
コンボ ボックス (通常は aCDialog) の親ウィンドウである CWnd オブジェクトへのポインター。 NULL は指定できません。

nID
コンボ ボックスのコントロール ID を指定します。

戻り値

オブジェクトが正常に作成された場合は 0 以外。それ以外の場合は 0。

解説

次の 2 つの手順でオブジェクトを CComboBoxEx 作成します。

  1. CComboBoxEx を呼び出してオブジェクトをCComboBoxEx構築します。

  2. このメンバー関数を呼び出します。これにより、拡張 Windows コンボ ボックスが作成され、オブジェクトに CComboBoxEx アタッチされます。

呼び出 Createすと、MFC によって共通コントロールが初期化されます。

コンボ ボックスを作成するときに、次のコンボ ボックス スタイルの一部またはすべてを指定できます。

  • CBS_SIMPLE

  • CBS_DROPDOWN

  • CBS_DROPDOWNLIST

  • CBS_AUTOHSCROLL

  • WS_CHILD

ウィンドウの作成時に渡されるその他のスタイルはすべて無視されます。 コントロールは ComboBoxEx 、追加の機能を提供する拡張スタイルもサポートしています。 これらのスタイルは、Windows SDK の ComboBoxEx コントロール拡張スタイルで説明されています。 SetExtendedStyle を呼び出 して、これらのスタイルを設定します

コントロールで拡張ウィンドウ スタイルを使用する場合は、代わりに CreateCreateEx を呼び出します。

CComboBoxEx::CreateEx

拡張コンボ ボックス コントロール (子ウィンドウ) を作成し、それをオブジェクトに関連付けるには、この関数を CComboBoxEx 呼び出します。

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

パラメーター

dwExStyle
作成するコントロールの拡張スタイルを指定します。 拡張 Windows スタイルの一覧については、Windows SDK の CreateWindowExdwExStyle パラメーターを参照してください。

dwStyle
コンボ ボックス コントロールのスタイル。 スタイルの一覧については、「作成」を参照してください

rect
pParentWnd のクライアント座標における、作成するウィンドウのサイズと位置を記述する RECT 構造体への参照

pParentWnd
コントロールの親であるウィンドウへのポインター。

nID
コントロールの子ウィンドウ ID。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

Windows 拡張スタイルのCreate前書きWS_EX_で指定された拡張 Windows スタイルを適用する代わりに使用CreateExします

CreateEx は、dwExStyle で指定された拡張 Windows スタイルを使用して コントロールを作成します。 SetExtendedStyle を使用して、拡張コンボ ボックス コントロールに固有の拡張スタイルを設定する必要があります。 たとえば、CreateExWS_EX_CONTEXTHELPなどのスタイルを設定する場合に使用しますが、CBES_EX_CAStandard EditionStandard Edition NSITIVE などのスタイルを設定する場合に使用SetExtendedStyleします。 詳細については、「Windows SDK の ComboBoxEx コントロール拡張スタイル」で 説明されているスタイル を参照してください。

CComboBoxEx::D eleteItem

コントロールから項目を ComboBoxEx 削除します。

int DeleteItem(int iIndex);

パラメーター

iIndex
削除する項目の 0 から始まるインデックス。

戻り値

コントロール内でメインする項目の数。 iIndex が無効な場合、関数はCB_ERRを返します。

解説

このメンバー関数は、Windows SDK で説明されているように、メッセージ CBEM_DELETEITEMの機能を実装します。 DeleteItem を呼び出すと、 CBEN_DELETEITEM 通知を含むWM_NOTIFY メッセージが親ウィンドウに送信されます。

CComboBoxEx::GetComboBoxCtrl

オブジェクト内のコンボ ボックス コントロールへのポインターを取得するには、このメンバー関数を CComboBoxEx 呼び出します。

CComboBox* GetComboBoxCtrl();

戻り値

CComboBox オブジェクトを指すポインターです。

解説

コントロールは CComboBoxEx 、親ウィンドウで構成され、これをカプセル化します CComboBox

戻り値によって指されるオブジェクトは CComboBox 一時的なオブジェクトであり、次のアイドル処理時間中に破棄されます。

CComboBoxEx::GetEditCtrl

このメンバー関数を呼び出して、コンボ ボックスの編集コントロールへのポインターを取得します。

CEdit* GetEditCtrl();

戻り値

CEdit オブジェクトへのポインター。

解説

コントロールは CComboBoxEx 、CBS_DROPDOWN スタイルで作成されるときに編集ボックスを使用します。

戻り値によって指されるオブジェクトは CEdit 一時的なオブジェクトであり、次のアイドル処理時間中に破棄されます。

CComboBoxEx::GetExtendedStyle

コントロールに使用される拡張スタイルを取得するには、このメンバー関数を CComboBoxEx 呼び出します。

DWORD GetExtendedStyle() const;

戻り値

コンボ ボックス コントロールに使用される拡張スタイルを含む DWORD 値。

解説

これらのスタイルの詳細については、Windows SDK の ComboBoxEx コントロール拡張スタイルに関するページを参照してください。

CComboBoxEx::GetImageList

このメンバー関数を呼び出して、コントロールによって使用されるイメージ リストへのポインターを CComboBoxEx 取得します。

CImageList* GetImageList() const;

戻り値

CImageList オブジェクトへのポインター。 失敗した場合、このメンバー関数は NULL を返します。

解説

戻り値によって指されるオブジェクトは CImageList 一時的なオブジェクトであり、次のアイドル処理時間中に破棄されます。

CComboBoxEx::GetItem

特定 ComboBoxEx のアイテムのアイテム情報を取得します。

BOOL GetItem(COMBOBOXEXITEM* pCBItem);

パラメーター

pCBItem
アイテム情報を受け取る CO MB (メガバイト)OBOXEXITEM 構造体へのポインター。

戻り値

操作が成功した場合は 0 以外。それ以外の場合は 0。

解説

このメンバー関数は、Windows SDK で説明されているように、メッセージ CBEM_GETITEMの機能を実装します。

CComboBoxEx::HasEditChanged

ユーザーが入力して編集コントロールの内容を ComboBoxEx 変更したかどうかを判断します。

BOOL HasEditChanged();

戻り値

ユーザーがコントロールの編集ボックスに入力した場合は 0 以外。それ以外の場合は 0。

解説

このメンバー関数は、Windows SDK で説明されているように、メッセージ CBEM_HAStandard Edition DITCHANGED の機能を実装します。

CComboBoxEx::InsertItem

コントロールに新しい項目を ComboBoxEx 挿入します。

int InsertItem(const COMBOBOXEXITEM* pCBItem);

パラメーター

pCBItem
アイテム情報を受け取る CO MB (メガバイト)OBOXEXITEM 構造体へのポインター。 この構造体には、項目のコールバック フラグ値が含まれています。

戻り値

成功した場合に新しい項目が挿入されたインデックス。それ以外の場合は -1。

解説

呼び出InsertItemすと、CBEN_INStandard Edition RTITEM 通知を含むWM_NOTIFY メッセージが親ウィンドウに送信されます。

CComboBoxEx::SetExtendedStyle

コンボ ボックス拡張コントロールに使用する拡張スタイルを設定するには、このメンバー関数を呼び出します。

DWORD SetExtendedStyle(
    DWORD dwExMask,
    DWORD dwExStyles);

パラメーター

dwExMask
dwExStyles のどのスタイルが影響を受けるかを示す DWORD 値。 dwExMask拡張スタイルのみが変更されます。 その他のスタイルはすべて、そのままメインされます。 このパラメーターが 0 の場合、dwExStylesのすべてのスタイルが影響を受ける。

dwExStyles
コントロールに設定する拡張スタイルのコンボ ボックス コントロールを含む DWORD 値。

戻り値

以前にコントロールに使用された拡張スタイルを含む DWORD 値。

解説

これらのスタイルの詳細については、Windows SDK の ComboBoxEx コントロール拡張スタイルに関するページを参照してください。

拡張ウィンドウ スタイルを持つコンボ ボックス拡張コントロールを作成するには、CreateEx を使用 します

CComboBoxEx::SetImageList

コントロールのイメージ リストを ComboBoxEx 設定します。

CImageList* SetImageList(CImageList* pImageList);

パラメーター

pImageList
コントロールでCImageListCComboBoxEx使用するイメージを含むオブジェクトへのポインター。

戻り値

コントロールによってCComboBoxEx以前に使用されたイメージを含む CImageList オブジェクトへのポインター。 イメージ リストが以前に設定されていない場合は NULL。

解説

このメンバー関数は、Windows SDK で説明されているように、メッセージ CBEM_Standard Edition TIMAGELIST の機能を実装します。 既定の編集コントロールの高さを変更する場合は、Win32 関数 SetWindowPos を呼び出して、呼び出 SetImageListした後にコントロールのサイズを変更するか、正しく表示されません。

戻り値によって指されるオブジェクトは CImageList 一時的なオブジェクトであり、次のアイドル処理時間中に破棄されます。

CComboBoxEx::SetItem

コントロール内の項目の属性を ComboBoxEx 設定します。

BOOL SetItem(const COMBOBOXEXITEM* pCBItem);

パラメーター

pCBItem
アイテム情報を受け取る CO MB (メガバイト)OBOXEXITEM 構造体へのポインター。

戻り値

操作が成功した場合は 0 以外。それ以外の場合は 0。

解説

このメンバー関数は、Windows SDK で説明されているように、メッセージ CBEM_Standard Edition TITEM の機能を実装します。

CComboBoxEx::SetWindowTheme

拡張コンボ ボックス コントロールの表示スタイルを設定します。

HRESULT SetWindowTheme(LPCWSTR pszSubAppName);

パラメーター

pszSubAppName
設定する拡張コンボ ボックスのビジュアル スタイルを含む Unicode 文字列へのポインター。

戻り値

戻り値は使用されません。

解説

このメンバー関数は、Windows SDK で説明されているように、CBEM_Standard Edition TWINDOWTHEME メッセージの機能をエミュレートします。

関連項目

MFC サンプル MFCIE
CComboBox クラス
階層図
CComboBox クラス