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 の使用」を参照してください。
継承階層
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
作成します。
CComboBoxEx を呼び出してオブジェクトを
CComboBoxEx
構築します。このメンバー関数を呼び出します。これにより、拡張 Windows コンボ ボックスが作成され、オブジェクトに
CComboBoxEx
アタッチされます。
呼び出 Create
すと、MFC によって共通コントロールが初期化されます。
コンボ ボックスを作成するときに、次のコンボ ボックス スタイルの一部またはすべてを指定できます。
CBS_SIMPLE
CBS_DROPDOWN
CBS_DROPDOWNLIST
CBS_AUTOHSCROLL
WS_CHILD
ウィンドウの作成時に渡されるその他のスタイルはすべて無視されます。 コントロールは ComboBoxEx
、追加の機能を提供する拡張スタイルもサポートしています。 これらのスタイルは、Windows SDK の ComboBoxEx コントロール拡張スタイルで説明されています。 SetExtendedStyle を呼び出 して、これらのスタイルを設定します。
コントロールで拡張ウィンドウ スタイルを使用する場合は、代わりに Create
CreateEx を呼び出します。
CComboBoxEx::CreateEx
拡張コンボ ボックス コントロール (子ウィンドウ) を作成し、それをオブジェクトに関連付けるには、この関数を CComboBoxEx
呼び出します。
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
パラメーター
dwExStyle
作成するコントロールの拡張スタイルを指定します。 拡張 Windows スタイルの一覧については、Windows SDK の CreateWindowEx の dwExStyle パラメーターを参照してください。
dwStyle
コンボ ボックス コントロールのスタイル。 スタイルの一覧については、「作成」を参照してください。
rect
pParentWnd のクライアント座標における、作成するウィンドウのサイズと位置を記述する RECT 構造体への参照。
pParentWnd
コントロールの親であるウィンドウへのポインター。
nID
コントロールの子ウィンドウ ID。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
Windows 拡張スタイルのCreate
前書きWS_EX_で指定された拡張 Windows スタイルを適用する代わりに使用CreateEx
します。
CreateEx
は、dwExStyle で指定された拡張 Windows スタイルを使用して コントロールを作成します。 SetExtendedStyle を使用して、拡張コンボ ボックス コントロールに固有の拡張スタイルを設定する必要があります。 たとえば、CreateEx
WS_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
コントロールでCImageList
CComboBoxEx
使用するイメージを含むオブジェクトへのポインター。
戻り値
コントロールによって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 メッセージの機能をエミュレートします。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示