横型スライダーコントロールのスタイルの変更

横型スライダーコントロールのスタイルの変更

横型スライダーの実装」で実装したスライダーはハンドルが右にある時に1.0、左にある時に0.0となります。
UIを作成する上で、逆の方向(ハンドルが左にある時に0.0、右にある時に1.0)にしたい場合があります。

このような場合は、CHorizontalSliderクラスのsetStyle()関数を使用します。setStyle()関数には下記のどちらかを引数として指定します。

引数 意味
kRight | kHorizontal スライダーハンドルが右にある時に1.0、左にある時に0.0となる (デフォルトはこちら)
kLeft | kHorizontal スライダーハンドルが左にある時に0.0、右にある時に1.0となる


【guieditor.cpp】

CHorizontalSliderクラスのコンストラクタに指定する「最大時のハンドル位置」「最小時のハンドル位置」(横型スライダーの実装 参照)は変更する必要はありません。

以上です。
上記以外にもVST3.6についての情報があります。下記をご参照ください。

また、質問やご指摘はコメント欄や掲示板Twitterでいただけばとおもいます。

掲示板
■Twitterアカウント:@vstcpp   URL:https://twitter.com/vstcpp


One thought on “横型スライダーコントロールのスタイルの変更

  1. どうしてもスライダーの増減方向を変えたくてあれこれ探していたらすでにうつぼかずらさんが記事にされていてとても助かりました。
    しかしどういうわけかウチではkLeft、kHorizontalともに「定義されていません」と出てしまい、
    cslider.hを見たら

    private:
    enum StyleEnum
    {
    StyleHorizontal = 0,
    StyleVertical,
    StyleLeft,
    StyleRight,
    StyleTop,
    StyleBottom,
    };

    public:
    enum Style
    {
    kHorizontal = 1 << StyleHorizontal,
    kVertical = 1 << StyleVertical,
    kLeft = 1 << StyleLeft,
    kRight = 1 << StyleRight,
    kTop = 1 << StyleTop,
    kBottom = 1 << StyleBottom,
    };

    と書かれていたので、setStyle(kLeft | kHorizontal);を
    setStyle(4 | 1);と置き換えてビルドしたら行けました。

    すっかり忘れていましたが、VST2.4で作ってた時に「おま環」対処みたいなのがとても多かったのを思い出してきました・・・。

    1. 猫十さん

      どこかのSDKバージョンで変わったようですね…。
      kLeftやkHorizontalがCSliderBaseクラス内で定義されているので、
      指定の際は「CSliderBase::kLeft」のように名前空間を指定すると大丈夫だと思います。

コメントを残す