wxComboCtrl

コンボコントロールはポップアップを完全にカスタマイズできる、ジェネリックなコンボボックスです。 さらに他のカスタマイズ機能もあります。 例えば、ドロップダウンボタンの位置やサイズを変更できます。
A combo control is a generic combobox that allows totally custom popup. In addition it has other customization features. For instance, position and size of the dropdown button can be changed.

wxComboCtrl 用のカスタムポップアップの設定
Setting Custom Popup for wxComboCtrl

どうにかして wxComboCtrl へどのコントロールを使用するか教える必要がありますが、 これは SetPopupControl() で行えます。 しかし、この関数の wxControl 以上のものが必要になります。 例えば SetStringValue("initial text value") を呼ぶ必要があっても、 wxControl にはそのような関数はありません。 そのため、wxComboPopup も必要になります。 これは、ポップアップとして使用できるようにコントロールで実装しなければならないインターフェースです。
wxComboCtrl needs to be told somehow which control to use and this is done by SetPopupControl(). However, we need something more than just a wxControl in this method as, for example, we need to call SetStringValue("initial text value") and wxControl doesn't have such method. So we also need a wxComboPopup which is an interface which must be implemented by a control to be usable as a popup.
この世界が wxWidgets のコントロールやコントロールから派生したクラスから クラスを派生できなくしているため、 wxControl から wxComboPopup を派生できません。 そのため、代わりに単にミックスインをしています。
We couldn't derive wxComboPopup from wxControl as this would make it impossible to have a class deriving from a wxWidgets control and from it, so instead it is just a mix-in.
これは wxListView のポップアップの最小サンプルです。
Here's a minimal sample of wxListView popup:
#include <wx/combo.h>
#include <wx/listctrl.h>
class wxListViewComboPopup : public wxListView,
                             public wxComboPopup
{
public:
    // メンバ変数を初期化する
    // Initialize member variables
    virtual void Init()
    {
        m_value = -1;
    }
    // ポップアップコントロールを作成する
    // Create popup control
    virtual bool Create(wxWindow* parent)
    {
        return wxListView::Create(parent,1,wxPoint(0,0),wxDefaultSize);
    }
    // 作成したコントロールのポインタを返す
    // Return pointer to the created control
    virtual wxWindow *GetControl() { return this; }
    // 文字列を選択する
    // Translate string into a list selection
    virtual void SetStringValue(const wxString& s)
    {
        int n = wxListView::FindItem(-1,s);
        if ( n >= 0 && n < wxListView::GetItemCount() )
            wxListView::Select(n);
    }
    // 選択されている文字列を取得する
    // Get list selection as a string
    virtual wxString GetStringValue() const
    {
        if ( m_value >= 0 )
            return wxListView::GetItemText(m_value);
        return wxEmptyString;
    }
    // (リストポップアップでは典型的な) マウスのホットトラッキングを行う
    // Do mouse hot-tracking (which is typical in list popups)
    void OnMouseMove(wxMouseEvent& event)
    {
        // TODO: カーソルにあわせて選択を移動する
        // TODO: Move selection to cursor
    }
    // マウスの左ボタンが上がった時に、値をセットし、ポップアップを閉じる
    // On mouse left up, set the value and close the popup
    void OnMouseClick(wxMouseEvent& WXUNUSED(event))
    {
        m_value = wxListView::GetFirstSelected();
        // TODO: イベントを送った方がいいかもしれない
        // TODO: Send event as well
        Dismiss();
    }
protected:
    int             m_value; // 現在の項目インデックス : current item index
private:
    DECLARE_EVENT_TABLE()
};
BEGIN_EVENT_TABLE(wxListViewComboPopup, wxListView)
    EVT_MOTION(wxListViewComboPopup::OnMouseMove)
    EVT_LEFT_UP(wxListViewComboPopup::OnMouseClick)
END_EVENT_TABLE()
これはダイアログのコンストラクタ内でのカスタムポップアップの作成方法とデータの入力方法です。
Here's how you would create and populate it in a dialog constructor:
    wxComboCtrl* comboCtrl = new wxComboCtrl(this,wxID_ANY,wxEmptyString);
    wxListViewComboPopup* popupCtrl = new wxListViewComboPopup();
    comboCtrl->SetPopupControl(popupCtrl);
    // wxListView の関数を使用してデータを入力する
    // Populate using wxListView methods
    popupCtrl->InsertItem(popupCtrl->GetItemCount(),wxT("First Item"));
    popupCtrl->InsertItem(popupCtrl->GetItemCount(),wxT("Second Item"));
    popupCtrl->InsertItem(popupCtrl->GetItemCount(),wxT("Third Item"));

継承元
Derived from

wxControl
wxWindow
wxEvtHandler
wxObject

インクルードファイル
Include files

<combo.h>

ウィンドウスタイル
Window styles

wxCB_READONLY
テキストは編集できなくなります。
Text will not be editable.
wxCB_SORT
リストの項目をアルファベット順にソートします。
Sorts the entries in the list alphabetically.
wxTE_PROCESS_ENTER
コントロールが wxEVT_COMMAND_TEXT_ENTER イベントを生成するようになります (そうでなければエンターキーを押してもコントロールによって内部的に処理されるか、 ダイアログのコントロール間のナビゲーションに使用されます)。 Windows のみ。
The control will generate the event wxEVT_COMMAND_TEXT_ENTER (otherwise pressing Enter key is either processed internally by the control or used for navigation between dialog controls). Windows only.
wxCC_SPECIAL_DCLICK
ダブルクリックするとポップアップの OnComboDoubleClick を呼びます。 実際の振る舞いは派生したクラスで定義されます。 例えば、 wxOwnerDrawnComboBox は項目を循環させます。 このスタイルは wxCB_READONLY も使用されている場合のみ適用されます。
Double-clicking triggers a call to popup's OnComboDoubleClick. Actual behaviour is defined by a derived class. For instance, wxOwnerDrawnComboBox will cycle an item. This style only applies if wxCB_READONLY is used as well.
wxCC_STD_BUTTON
ドロップボタンは標準のプッシュボタンにより近い振る舞いをします。
Drop button will behave more like a standard push button.
ウィンドウスタイルの概要 も参照してください。
See also window styles overview.

イベントハンドリング
Event handling

EVT_TEXT(id, func)
テキストが変更されたときに発生する、wxEVT_COMMAND_TEXT_UPDATED イベントを処理します。
Process a wxEVT_COMMAND_TEXT_UPDATED event, when the text changes.
EVT_TEXT_ENTER(id, func)
コンボコントロールで <RETURN> が押されたときに発生する、 wxEVT_COMMAND_TEXT_ENTER イベントを処理します。
Process a wxEVT_COMMAND_TEXT_ENTER event, when <RETURN> is pressed in the combo control.

参照
See also

wxComboBox, wxChoice, wxOwnerDrawnComboBox, wxComboPopup, wxCommandEvent

メンバ
Members


wxComboCtrl::wxComboCtrl

wxComboCtrl()
デフォルトコンストラクタ。
Default constructor.
wxComboCtrl(wxWindow* parent, wxWindowID id, const wxString& value = "", const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "comboCtrl")
コンストラクタ。 コンボコントロールを作成し、表示します。
Constructor, creating and showing a combo control.

引数
Parameters

parent
親ウィンドウ。 NULL ではいけません。
Parent window. Must not be NULL.
id
ウインドウ識別子。 -1 はデフォルトの値を表します。
Window identifier. A value of -1 indicates a default value.
value
最初の選択文字列。空文字列は選択しないことを表します。
Initial selection string. An empty string indicates no selection.
pos
ウインドウの位置。
Window position.
size
ウインドウの大きさ。もしデフォルトの (-1, -1) が指定された場合、 ウインドウの大きさは適切に決められます。
Window size. If the default size (-1, -1) is specified then the window is sized appropriately.
style
ウィンドウスタイル。 wxComboCtrl を参照してください。
Window style. See wxComboCtrl.
validator
ウィンドウバリデータ。
Window validator.
name
ウィンドウの名前。
Window name.

参照
See also

wxComboCtrl::Create, wxValidator

wxComboCtrl::~wxComboCtrl

~wxComboCtrl()
デストラクタ。 コンボコントロールを破棄します。
Destructor, destroying the combo control.

wxComboCtrl::AnimateShow

virtual bool AnimateShow(const wxRect& rect, int flags)
このメンバ関数がアプリケーションコードで呼ばれることは通常ありません。 代わりに、カスタムポップアップアニメーションを作成するように 派生クラスで実装することができます。
This member function is not normally called in application code. Instead, it can be implemented in a derived class to create a custom popup animation.

引数
Parameters

DoShowPopup と同じです。
Same as in DoShowPopup.

戻り値
Return value

関数が返る前にアニメーションが終了したなら true です。 それ以外なら false です。 後者の場合、アニメーションが終了した後に手動で DoShowPopup を呼ぶ必要があります。
true if animation finishes before the function returns. false otherwise. In the latter case you need to manually call DoShowPopup after the animation ends.

wxComboCtrl::Create

bool Create(wxWindow* parent, wxWindowID id, const wxString& value = "", const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "comboCtrl")
2 段階に分けてコンボコントロールを作成します。 派生クラスはこの関数を呼ぶか置き換えるべきです。 より詳しくは wxComboCtrl::wxComboCtrl を 参照してください。
Creates the combo control for two-step construction. Derived classes should call or replace this function. See wxComboCtrl::wxComboCtrl for further details.

wxComboCtrl::Copy

void Copy()
選択したテキストをクリップボードへコピーします。
Copies the selected text to the clipboard.

wxComboCtrl::Cut

void Cut()
選択したテキストをクリップボードにコピーし、削除します。
Copies the selected text to the clipboard and removes the selection.

wxComboCtrl::DoSetPopupControl

void DoSetPopupControl(wxComboPopup* popup)
このメンバ関数がアプリケーションコードで呼ばれることは通常ありません。 代わりに、popup が NULL の場合に デフォルトの wxComboPopup を返すように派生クラスで実装することができます。
This member function is not normally called in application code. Instead, it can be implemented in a derived class to return default wxComboPopup, incase popup is NULL.
注: ポップアップを表示する以上のことを行うように OnButtonClick を実装した場合、 DoSetPopupControl は常に NULL を返さなければなりません。
Note: If you have implemented OnButtonClick to do something else than show the popup, then DoSetPopupControl must always return NULL.

wxComboCtrl::DoShowPopup

virtual void DoShowPopup(const wxRect& rect, int flags)
このメンバ関数がアプリケーションコードで呼ばれることは通常ありません。 代わりに、ポップアップアニメーションが終了した後 (しかし、AnimateShow が 関数スコープ内でアニメーションを終了させない場合に限り) 、 ポップアップが適切に表示されるようにするために 派生クラスで呼ばなければなりません。
This member function is not normally called in application code. Instead, it must be called in a derived class to make sure popup is properly shown after a popup animation has finished (but only if AnimateShow did not finish the animation within it's function scope).

引数
Parameters

rect
スクリーン座標でのポップアップウィンドウを表示する位置。
Position to show the popup window at, in screen coordinates.
flags
以下の組み合わせ:
Combination of any of the following:
wxComboCtrl::ShowAbove
コントロールの下ではなく、上に表示されます。
Popup is shown above the control instead of below.
wxComboCtrl::CanDeferShow
ポップアップの表示を ShowPopup が終了した後に 延期することができます。 この場合、AnimateShowfalse を返します。
Showing the popup can be deferred to happen sometime after ShowPopup has finished. In this case, AnimateShow must return false.

wxComboCtrl::EnablePopupAnimation

void EnablePopupAnimation(bool enable = true)
ポップアップアニメーションを引数の値に応じて有効または無効にします。
Enables or disables popup animation, if any, depending on the value of the argument.

wxComboCtrl::GetBitmapDisabled

const wxBitmap& GetBitmapDisabled() const
SetButtonBitmaps でセットされた、 無効なボタンビットマップを返します。
Returns disabled button bitmap that has been set with SetButtonBitmaps.

戻り値
Return value

無効状態のビットマップへの参照。
A reference to the disabled state bitmap.

wxComboCtrl::GetBitmapHover

const wxBitmap& GetBitmapHover() const
SetButtonBitmaps でセットされた マウスホバー時のビットマップを返します。
Returns button mouse hover bitmap that has been set with SetButtonBitmaps.

戻り値
Return value

マウスホバー状態のビットマップへの参照。
A reference to the mouse hover state bitmap.

wxComboCtrl::GetBitmapNormal

const wxBitmap& GetBitmapNormal() const
SetButtonBitmaps でセットされた デフォルトのボタンビットマップを返します。
Returns default button bitmap that has been set with SetButtonBitmaps.

戻り値
Return value

通常状態のビットマップへの参照。
A reference to the normal state bitmap.

wxComboCtrl::GetBitmapPressed

const wxBitmap& GetBitmapPressed() const
SetButtonBitmaps でセットされた 押されたボタンのビットマップを返します。
Returns depressed button bitmap that has been set with SetButtonBitmaps.

戻り値
Return value

押された状態のビットマップへの参照。
A reference to the depressed state bitmap.

wxComboCtrl::GetButtonSize

wxSize GetButtonSize()
ドロップダウンボタンの現在のサイズを返します。
Returns current size of the dropdown button.

wxComboCtrl::GetCustomPaintWidth

int GetCustomPaintWidth() const
コントロール内のカスタム描画領域を返します。
Returns custom painted area in control.

参照
See also

wxComboCtrl::SetCustomPaintWidth.

wxComboCtrl::GetFeatures

static int GetFeatures()
wxComboCtrl がサポートしている機能を返します。 必要な機能がない場合、代わりに wxGenericComboCtrl を使用する必要があります。 しかし、これはネイティブな見た目ではありません (が、同一の API を持ちます)。
Returns features supported by wxComboCtrl. If needed feature is missing, you need to instead use wxGenericComboCtrl, which however may lack native look and feel (but otherwise sports identical API).

戻り値
Return value

返される値は次のフラグの組み合わせです:
Value returned is a combination of following flags:
wxComboCtrlFeatures::MovableButton
コントロールのどちら側にでもボタンを配置できます。
Button can be on either side of the control.
wxComboCtrlFeatures::BitmapButton
ビットマップでボタンを置き換えます。
Button may be replaced with bitmap.
wxComboCtrlFeatures::ButtonSpacing
ボタンに隙間を持たせられます。
Button can have spacing.
wxComboCtrlFeatures::TextIndent
SetTextIndent が動作します。
SetTextIndent works.
wxComboCtrlFeatures::PaintControl
コンボコントロール自身の描画をカスタマイズできます。
Combo control itself can be custom painted.
wxComboCtrlFeatures::PaintWritable
書き換え可能なコンボコントロールが持つテキストコントロールの 可変幅領域の描画をカスタマイズできます。
A variable- width area in front of writable combo control's textctrl can be custom painted.
wxComboCtrlFeatures::Borderless
wxNO_BORDER ウィンドウスタイルが動作します。
wxNO_BORDER window style works.
wxComboCtrlFeatures::All
上記すべて。
All of the above.

wxComboCtrl::GetInsertionPoint

long GetInsertionPoint() const
コンボコントロールのテキストフィールドを挿入する位置を返します。
Returns the insertion point for the combo control's text field.
注: wxMSW ではコンボコントロールがフォーカスを持たない場合、 常に 0 を返します。
Note: Under wxMSW, this function always returns 0 if the combo control doesn't have the focus.

wxComboCtrl::IsPopupWindowState

bool IsPopupWindowState(int state) const
ポップアップウィンドウが指定された状態である場合、 true を返します。 可能な値は以下の通りです:
Returns true if the popup window is in the given state. Possible values are:
wxComboCtrl::Hidden
ポップアップウィンドウは表示されていない。
Popup window is hidden.
wxComboCtrl::Animating
ポップアップウィンドウは表示されているが、 ポップアップアニメーションはまだ終了していない。
Popup window is being shown, but the popup animation has not yet finished.
wxComboCtrl::Visible
ポップアップウィンドウは完全に表示されている。
Popup window is fully visible.

wxComboCtrl::GetLastPosition

long GetLastPosition() const
コンボコントロールのテキストフィールド内で最後の位置を返します。
Returns the last position in the combo control text field.

wxComboCtrl::GetPopupControl

wxComboPopup* GetPopupControl()
SetPopupControl でセットした現在のポップアップインターフェイスを返します。
Returns current popup interface that has been set with SetPopupControl.

wxComboCtrl::GetPopupWindow

wxWindow* GetPopupWindow() const
ポップアップコントロールを含んでいるポップアップウィンドウを返します。
Returns popup window containing the popup control.

wxComboCtrl::GetTextCtrl

wxTextCtrl* GetTextCtrl() const
コンボコントロールの一部であるテキストコントロールを取得します。
Get the text control which is part of the combo control.

wxComboCtrl::GetTextIndent

wxCoord GetTextIndent() const
実際のインデントをピクセル単位で返します。
Returns actual indentation in pixels.

wxComboCtrl::GetTextRect

const wxRect& GetTextRect() const
テキストフィールドで覆われる (枠線とドロップダウンボタン以外のすべてを含む) 領域を返します。
Returns area covered by the text field (includes everything except borders and the dropdown button).

wxComboCtrl::GetValue

wxString GetValue() const
現在の値のテキスト表現を返します。 書き込み可能なコンボコントロールでは常にテキストフィールドの値を返します。
Returns text representation of the current value. For writable combo control it always returns the value in the text field.

wxComboCtrl::HidePopup

void HidePopup()
ポップアップウィンドウをなくします。
Dismisses the popup window.

wxComboCtrl::IsPopupShown

bool IsPopupShown() const
現在ポップアップが表示されていれば true を返します。
Returns true if the popup is currently shown

wxComboCtrl::OnButtonClick

void OnButtonClick()
ドロップダウンボタンをクリックしたときの動作を定義するには 派生クラスで実装してください。
Implement in a derived class to define what happens on dropdown button click.
デフォルトの動作はポップアップの表示です。
Default action is to show the popup.
注: ポップアップの表示以外の動作を実装した場合、 DoSetPopupControl も 常に NULL を返すように実装しなければなりません。
Note: If you implement this to do something else than show the popup, you must then also implement DoSetPopupControl to always return NULL.

wxComboCtrl::Paste

void Paste()
クリップボードからテキストフィールドへテキストを貼り付けます。
Pastes text from the clipboard to the text field.

wxComboCtrl::Remove

void Remove(long from, long to)
コンボコントロールのテキストフィールド内の 2 箇所の間にあるテキストを削除します。
Removes the text between the two positions in the combo control text field.

引数
Parameters

from
最初の位置。
The first position.
to
最後の位置。
The last position.

wxComboCtrl::Replace

void Replace(long from, long to, const wxString& value)
コンボコントロールのテキストフィールド内の 2 箇所の間にあるテキストを指定したテキストで置き換えます。
Replaces the text between two positions with the given text, in the combo control text field.

引数
Parameters

from
最初の位置。
The first position.
to
2 番目の位置。
The second position.
text
挿入するテキスト。
The text to insert.

wxComboCtrl::SetButtonBitmaps

void SetButtonBitmaps(const wxBitmap& bmpNormal, bool pushButtonBg = false, const wxBitmap& bmpPressed = wxNullBitmap, const wxBitmap& bmpHover = wxNullBitmap, const wxBitmap& bmpDisabled = wxNullBitmap)
カスタムドロップダウンボタン用の画像をセットします。
Sets custom dropdown button graphics.

引数
Parameters

bmpNormal
デフォルトのボタンの画像。
Default button image.
pushButtonBg
true の場合、画像の下に空白のプッシュボタンの背景を描画します。
If true, blank push button background is painted below the image.
bmpPressed
押下されたボタンの画像。
Depressed button image.
bmpHover
ボタン上でマウスがホバーする時のボタンの画像。 マウスのホバー時に異なる種類のボタンを通常描画しないプラットフォームやテーマでは これは無視されます。
Button image when mouse hovers above it. This should be ignored on platforms and themes that do not generally draw different kind of button on mouse hover.
bmpDisabled
無効化されたボタンの画像。
Disabled button image.

wxComboCtrl::SetButtonPosition

void SetButtonPosition(int width = -1, int height = -1, int side = wxRIGHT, int spacingX = 0)
ドロップダウンボタンのサイズと位置をセットします。
Sets size and position of dropdown button.

引数
Parameters

width
ボタンの幅。 0 以下の値はデフォルトを表します。
Button width. Value <= 0 specifies default.
height
ボタンの高さ。 0 以下の値はデフォルトを表します。
Button height. Value <= 0 specifies default.
side
どちら側にボタンを配置するかを示します。 値は wxLEFTwxRIGHT です。
Indicates which side the button will be placed. Value can be wxLEFT or wxRIGHT.
spacingX
ボタンの周りの水平方向の余白。 デフォルトは 0 です。
Horizontal spacing around the button. Default is 0.

wxComboCtrl::SetCustomPaintWidth

void SetCustomPaintWidth(int width)
wxCB_READONLY スタイルを指定していないコントロールの カスタム描画領域の幅をピクセル単位で指定します。 読み込み専用の wxOwnerDrawnComboBox では フォーカス矩形で覆われない領域を示すために使用されます。
Set width, in pixels, of custom painted area in control without wxCB_READONLY style. In read-only wxOwnerDrawnComboBox, this is used to indicate area that is not covered by the focus rectangle.

wxComboCtrl::SetInsertionPoint

void SetInsertionPoint(long pos)
テキストフィールド内の挿入位置をセットします。
Sets the insertion point in the text field.

引数
Parameters

pos
新しい挿入位置。
The new insertion point.

wxComboCtrl::SetInsertionPointEnd

void SetInsertionPointEnd()
挿入位置をコンボボックスのテキストフィールドの最後にセットします。
Sets the insertion point at the end of the combo control text field.

wxComboCtrl::SetPopupAnchor

void SetPopupAnchor(int anchorSide)
コントロールのどちら側にポップアップを整列するかをセットします。 有効な値は wxLEFTwxRIGHT と 0 です。 デフォルトの値 0 は最も適切な側 (今のところ、常に wxLEFT) を 使用することを意味しています。
Set side of the control to which the popup will align itself. Valid values are wxLEFT, wxRIGHT and 0. The default value 0 means that the most appropriate side is used (which, currently, is always wxLEFT).

wxComboCtrl::SetPopupControl

void SetPopupControl(wxComboPopup* popup)
wxComboPopup から派生したポップアップのインターフェイスクラスをセットします。 OnButtonClick をオーバーライドしていない場合、 コントロールを作成した後、できるだけ早くこの関数を呼ぶべきです。
Set popup interface class derived from wxComboPopup. This method should be called as soon as possible after the control has been created, unless OnButtonClick has been overridden.

wxComboCtrl::SetPopupExtents

void SetPopupExtents(int extLeft, int extRight)
コンボボックスの境界と相対的にポップアップの水平方向のサイズを拡張します。
Extends popup size horizontally, relative to the edges of the combo control.

引数
Parameters

extLeft
コントロールの左の境界を越えて何ピクセル拡張するか。 デフォルトは 0 です。
How many pixel to extend beyond the left edge of the control. Default is 0.
extRight
コントロールの右の境界を越えて何ピクセル拡張するか。 デフォルトは 0 です。
How many pixel to extend beyond the right edge of the control. Default is 0.

注釈
Remarks

ポップアップの最小幅は引数を無効にします。
Popup minimum width may override arguments.
これを完全に考慮するかどうかはポップアップ次第です。
It is up to the popup to fully take this into account.

wxComboCtrl::SetPopupMaxHeight

void SetPopupMaxHeight(int height)
ポップアップの推奨する最大の高さをセットします。
Sets preferred maximum height of the popup.

注釈
Remarks

値 -1 はデフォルトを表します。
Value -1 indicates the default.
また、ポップアップの実装によっては、これは無視されるかもしれません。
Also, popup implementation may choose to ignore this.

wxComboCtrl::SetPopupMinWidth

void SetPopupMinWidth(int width)
ポップアップの最小幅をセットします。 コンボボックスの幅よりも大きい場合、左まで拡張します。
Sets minimum width of the popup. If wider than combo control, it will extend to the left.

注釈
Remarks

値 -1 はデフォルトを表します。
Value -1 indicates the default.
また、ポップアップの実装によっては、これは無視されるかもしれません。
Also, popup implementation may choose to ignore this.

wxComboCtrl::SetSelection

void SetSelection(long from, long to)
コンボコントロールのテキストフィールド内の 2 箇所の間にあるテキストを選択します。
Selects the text between the two positions, in the combo control text field.

引数
Parameters

from
最初の位置。
The first position.
to
2 番目の位置。
The second position.

wxComboCtrl::SetText

void SetText(const wxString& value)
ポップアップに影響を与えずにテキストフィールドにテキストをセットします。 したがって、 SetValue と異なり、 wxCB_READONLY スタイルを使用しているコンボコントロールでも 同じように動作します。
Sets the text for the text field without affecting the popup. Thus, unlike SetValue, it works equally well with combo control using wxCB_READONLY style.

wxComboCtrl::SetTextIndent

void SetTextIndent(int indent)
コントロールが読み込み専用かどうかに関係なく、コントロールの左端とテキストとの間の余白を ピクセル単位でセットします。 プラットフォームのデフォルトを表すために値 -1 を指定できます。
This will set the space in pixels between left edge of the control and the text, regardless whether control is read-only or not. Value -1 can be given to indicate platform default.

wxComboCtrl::SetValue

void SetValue(const wxString& value)
コンボコントロールのテキストフィールドにテキストをセットします。
Sets the text for the combo control text field.
注: wxCB_READONLY を指定したコンボコントロールでは 文字列がポップアップに受理されなければなりません (例えば、文字列がドロップダウンリストにあるなど)。 そうでない場合、 SetValue() の呼び出しは無視されます。
NB: For a combo control with wxCB_READONLY style the string must be accepted by the popup (for instance, exist in the dropdown list), otherwise the call to SetValue() is ignored

wxComboCtrl::SetValueWithEvent

void SetValueWithEvent(const wxString& value, bool withEvent = true)
SetValue と同じですが、 withEventtrue の場合に wxEVT_COMMAND_TEXT_UPDATED 型の wxCommandEvent も送ります。
Same as SetValue, but also sends wxCommandEvent of type wxEVT_COMMAND_TEXT_UPDATED if withEvent is true.

wxComboCtrl::ShowPopup

void ShowPopup()
ポップアップを表示します。
Show the popup.

wxComboCtrl::Undo

void Undo()
テキストフィールドの最後の編集を元に戻します。 Windows のみ。
Undoes the last edit in the text field. Windows only.

wxComboCtrl::UseAltPopupWindow

void UseAltPopupWindow(bool enable = true)
ポップアップコントロールへフォーカスできることを保証し、 さらにコモンネイティブコントロールが通常通り機能できるようにする、 代替ポップアップウィンドウの使用を有効または無効にします。 この代替ポップアップウィンドウは通常 wxDialog であり、 表示されるときに、ポップアップからフォーカスが失われたかのように 親のトップレベルウィンドウが現れます。
Enable or disable usage of an alternative popup window, which guarantees ability to focus the popup control, and allows common native controls to function normally. This alternative popup window is usually a wxDialog, and as such, when it is shown, its parent top-level window will appear as if the focus has been lost from it.