ホーム > デベロッパ > SophiaFramework > BREW C++ 逆引きコード集

BREW C++ プログラミング : SophiaFramework 逆引き FAQ・コード集

コンボ ボックスを作成する

SFRComboboxControl を使って、コンボ ボックスを作成します。

SFMTYPEDEFCLASS(UserClass)
class UserClass : public SFRPlainWindow {
  // コンストラクタなどは省略
  private:
    Void  Main  (Void);
    HANDLER_DECLARE_VOIDCONTROL(ComboboxHandler)
};

// コンボ ボックスを作成する(エラー処理は省略)
Void UserClass::Main(Void)
{
  SFRComboboxControlPtr  combobox;
  SFXWideString          item[]  = {"item1", "item2", "item3"};

  combobox = new SFRComboboxControl(window, 
                                    SFXRectangle(5, 5, 48, 16), 
                                    item, lengthof(item));
  
  combobox->RegisterHandler(SREVT_CONTROL, HANDLER_BEFORE, 
                            HANDLER_FUNCTION(ComboboxHandler));
  
  // item1 のアイテム項目にアクセスキーを設定する
  combobox->SetAccessKey(0, AVK_1, 0x69F7);
  
  // コンボ ボックスの色を設定する
  // 設定しない場合はデフォルトの色になる
  combobox->SetColor(SFRComboboxControl::COLOR_BUTTON_LIGHT, 
                     SFXRGBColor(0x99, 0x99, 0x99, 0x00));
  combobox->SetColor(SFRComboboxControl::COLOR_BUTTON_BASE, 
                     SFXRGBColor(0x66, 0x66, 0x66, 0x00));
  combobox->SetColor(SFRComboboxControl::COLOR_BUTTON_SHADOW, 
                     SFXRGBColor(0x33, 0x33, 0x33, 0x00));
  combobox->SetColor(SFRComboboxControl::COLOR_BUTTON_TITLE, 
                     SFXRGBColor(0xBB, 0xBB, 0xBB, 0x00));
  
  combobox->SetColor(SFRComboboxControl::COLOR_MENU_LIGHT, 
                    SFXRGBColor(0x99, 0x99, 0x99, 0x00));
  combobox->SetColor(SFRComboboxControl::COLOR_MENU_BASE, 
                    SFXRGBColor(0x66, 0x66, 0x6, 0x006));
  combobox->SetColor(SFRComboboxControl::COLOR_MENU_SHADOW, 
                    SFXRGBColor(0x33, 0x33, 0x33, 0x00));
  combobox->SetColor(SFRComboboxControl::COLOR_MENU_TITLE, 
                    SFXRGBColor(0xBB, 0xBB, 0xBB, 0x00));
  
  return;
}

// コンボ ボックス ハンドラ( メニューが選択されたときに起動する )
HANDLER_IMPLEMENT_VOIDCONTROL(UserClass, ComboboxHandler, result, control) {

  ......

  return;
}