Mfc-combo-boxes

提供:Dev Guides
移動先:案内検索

MFC-コンボボックス

コンボボックス*は、静的コントロールまたは編集コントロールのいずれかと組み合わされたリストボックスで構成されます。 *CComboBox クラスで表されます。 コントロールのリストボックス部分は常に表示される場合と、ユーザーがコントロールの横にあるドロップダウン矢印を選択した場合にのみドロップダウンする場合があります。

____ここはCComboBoxクラスのメソッドのリストです。

Sr.No. Name & Description
1

AddString

コンボボックスのリストボックスのリストの末尾、または CBS_SORT スタイルのリストボックスのソート位置に文字列を追加します。

2

Clear

編集コントロール内の現在の選択項目がある場合、それを削除(クリア)します。

3

CompareItem

ソートされたオーナー描画コンボボックス内の新しいリストアイテムの相対位置を決定するために、フレームワークによって呼び出されます。

4

Copy

現在の選択があれば、 CF_TEXT 形式でクリップボードにコピーします。

5

Create

コンボボックスを作成し、CComboBoxオブジェクトに添付します。

6

Cut

エディットコントロール内の現在の選択項目がある場合、それを削除(カット)し、削除されたテキストをCF_TEXT形式でクリップボードにコピーします。

7

DeleteItem

リストアイテムがオーナー描画コンボボックスから削除されたときに、フレームワークによって呼び出されます。

8

DeleteString

コンボボックスのリストボックスから文字列を削除します。

9

Dir

コンボボックスのリストボックスにファイル名のリストを追加します。

10

DrawItem

オーナー描画コンボボックスの視覚的側面が変更されたときに、フレームワークによって呼び出されます。

11

FindString

コンボボックスのリストボックスで、指定されたプレフィックスを含む最初の文字列を検索します。

12

FindStringExact

指定された文字列に一致する最初のリストボックス文字列(コンボボックス内)を検索します。

13

GetComboBoxInfo

CComboBoxオブジェクトに関する情報を取得します。

14

GetCount

コンボボックスのリストボックス内のアイテムの数を取得します。

15

GetCueBanner

コンボボックスコントロールに表示されるキューテキストを取得します。

16

GetCurSel

コンボボックスのリストボックスで現在選択されているアイテムがある場合、そのインデックスを取得します。

17

GetDroppedControlRect

ドロップダウンコンボボックスの表示(ドロップダウン)リストボックスの画面座標を取得します。

18

GetDroppedState

ドロップダウンコンボボックスのリストボックスを表示(ドロップダウン)するかどうかを決定します。

19

GetDroppedWidth

コンボボックスのドロップダウンリストボックス部分の最小許容幅を取得します。

20

GetEditSel

コンボボックスの編集コントロール内の現在の選択範囲の開始文字位置と終了文字位置を取得します。

21

GetExtendedUI

コンボボックスにデフォルトのユーザーインターフェイスまたは拡張ユーザーインターフェイスがあるかどうかを決定します

22

GetHorizontalExtent

コンボボックスのリストボックス部分を水平方向にスクロールできる幅をピクセル単位で返します。

23

GetItemData

指定されたコンボボックスアイテムに関連付けられたアプリケーションが提供する32ビット値を取得します。

24

GetItemDataPtr

指定されたコンボボックスアイテムに関連付けられているアプリケーションが提供する32ビットポインターを取得します。

25

GetItemHeight

コンボボックス内のリストアイテムの高さを取得します。

26

GetLBText

コンボボックスのリストボックスから文字列を取得します。

27

GetLBTextLen

コンボボックスのリストボックス内の文字列の長さを取得します。

28

GetLocale

コンボボックスのロケール識別子を取得します。

29

GetMinVisible

現在のコンボボックスのドロップダウンリストに表示されるアイテムの最小数を取得します。

30

GetTopIndex

コンボボックスのリストボックス部分にある最初の表示項目のインデックスを返します。

31

InitStorage

コンボボックスのリストボックス部分の項目と文字列にメモリブロックを事前に割り当てます。

32

InsertString

コンボボックスのリストボックスに文字列を挿入します。

33

LimitText

ユーザーがコンボボックスの編集コントロールに入力できるテキストの長さを制限します。

34

MeasureItem

オーナー描画のコンボボックスが作成されたときに、コンボボックスの寸法を決定するためにフレームワークによって呼び出されます

35

Paste

クリップボードのデータを編集コントロールの現在のカーソル位置に挿入します。 データは、クリップボードにCF_TEXT形式のデータが含まれている場合にのみ挿入されます。

36

ResetContent

リストボックスからすべての項目を削除し、コンボボックスのコントロールを編集します。

37

SelectString

コンボボックスのリストボックス内の文字列を検索し、文字列が見つかった場合、リストボックス内の文字列を選択し、その文字列を編集コントロールにコピーします。

38

SetCueBanner

コンボボックスコントロールに表示されるキューテキストを設定します。

39

SetCurSel

コンボボックスのリストボックスで文字列を選択します。

40

SetDroppedWidth

コンボボックスのドロップダウンリストボックス部分の最小許容幅を設定します。

41

SetEditSel

コンボボックスの編集コントロールで文字を選択します。

42

SetExtendedUI

  • CBS_DROPDOWN* または *CBS_DROPDOWNLIST* スタイルのコンボボックスのデフォルトユーザーインターフェイスまたは拡張ユーザーインターフェイスのいずれかを選択します。
43

SetHorizontalExtent

コンボボックスのリストボックス部分を水平方向にスクロールできる幅をピクセル単位で設定します。

44

SetItemData

コンボボックス内の指定された項目に関連付けられた32ビット値を設定します。

45

SetItemDataPtr

コンボボックス内の指定された項目に関連付けられた32ビットポインターを設定します。

46

SetItemHeight

コンボボックス内のリストアイテムの高さ、またはコンボボックスの編集コントロール(または静的テキスト)部分の高さを設定します。

47

SetLocale

コンボボックスのロケール識別子を設定します。

48

SetMinVisibleItems

現在のコンボボックスのドロップダウンリストに表示されるアイテムの最小数を設定します。

49

SetTopIndex

コンボボックスのリストボックス部分に、指定されたインデックスを上部に持つアイテムを表示するように指示します。

50

ShowDropDown

CBS_DROPDOWNまたはCBS_DROPDOWNLISTスタイルのコンボボックスのリストボックスを表示または非表示にします。

Comboboxコントロールのメッセージマッピングのリストは次のとおりです-

Message Map entry Description
CBN_DBLCLK ON_CBN_DBLCLK( <id>, <memberFxn> ) The user double-clicks a string in the list box of a combo box.
CBN_DROPDOWN ON_CBN_DROPDOWN( <id>, <memberFxn> ) The list box of a combo box is about to drop down (be made visible).
CBN_EDITCHANGE ON_CBN_EDITCHANGE( <id>, <memberFxn> ) The user has taken an action that may have altered the text in the editcontrol portion of a combo box.
CBN_EDITUPDATE ON_CBN_EDITUPDATE( <id>, <memberFxn> ) The edit-control portion of a combo box is about to display altered text.
CBN_KILLFOCUS ON_CBN_KILLFOCUS( <id>, <memberFxn> ) The combo box is losing the input focus.
CBN_SELCHANGE ON_CBN_SELCHANGE( <id>, <memberFxn> ) The selection in the list box of a combo box is about to be changed as a result of the user either clicking in the list box or changing the selection by using the arrow keys.
CBN_SETFOCUS ON_CBN_SETFOCUS( <id>, <memberFxn> ) The combo box receives the input focus.

新しいMFCダイアログベースのアプリケーションを作成して、ラジオボタンの例を見てみましょう。

  • ステップ1 *-コンボボックスをドラッグして、静的テキストコントロールのキャプションを削除します。

静的テキストのキャプションを削除

  • ステップ2 *-コンボボックスのコントロール変数m_comboBoxCtrlと静的テキストコントロールの値変数m_strTextCtrlを追加します。
  • ステップ3 *-コンボボックスの選択を変更するためのイベントハンドラーを追加します。

コンボボックス

  • ステップ4 *-次のコードをOnInitDialog()に追加して、コンボボックスをロードします。
for (int i = 0; i<10; i++) {
   str.Format(_T("Item %d"), i);
   m_comboBoxCtrl.AddString(str);
}
  • ステップ5 *-イベントハンドラーの実装です。
void CMFCComboBoxDlg::OnCbnSelchangeCombo1() {

  //TODO: Add your control notification handler code here
   m_comboBoxCtrl.GetLBText(m_comboBoxCtrl.GetCurSel(), m_strTextCtrl);
   UpdateData(FALSE);
}
  • ステップ6 *-上記のコードをコンパイルして実行すると、次の出力が表示されます。

コンボボックス出力

  • ステップ7 *-アイテムを選択すると、テキストコントロールに表示されます。