« 吉里吉里/KAG 用フェードのあるスタッフロールを作るための KAG プラグイン | メイン | サウンドゲームシリーズ「ブロック崩し」 1.01 公開 »

2006/02/21(火)

オーディオプレイヤ開発記 その17

 今回は、スライダを管理するクラス CSliderCtrl です。オーディオプレイヤでは、再生時間の設定や速度・周波数の設定などに使えます。

//----------------------------------------------------------------------------
// SliderCtrl.h : スライダコントロールの管理を行う
//----------------------------------------------------------------------------
#ifndef SliderCtrlH
#define SliderCtrlH

#include <commctrl.h>
#include "Wnd.h"
//----------------------------------------------------------------------------
// スライダコントロールの管理を行うクラス
//----------------------------------------------------------------------------
class CSliderCtrl : public CWnd
{
public: // 関数

    CSliderCtrl() { }
    virtual ~CSliderCtrl() { }

    virtual BOOL Create(HWND hParentWnd)
    {
        Destroy();

        INITCOMMONCONTROLSEX ic;
        ic.dwSize = sizeof(INITCOMMONCONTROLSEX);
        ic.dwICC = ICC_BAR_CLASSES;
        InitCommonControlsEx(&ic);

        m_hWnd = CreateWindow(TRACKBAR_CLASS, "", WS_CHILD, CW_USEDEFAULT,
                                CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
                                hParentWnd, 0, GetModuleHandle(NULL), NULL);
        if(!m_hWnd) return FALSE;
        SetProc();
        return TRUE;
    }
    virtual LRESULT SetLineSize(LONG lLineSize)
    {
        return SendMessage(m_hWnd, TBM_SETLINESIZE, 0, (LPARAM)lLineSize);
    }
    virtual int SetPageSize(LONG lPageSize)
    {
        return SendMessage(m_hWnd, TBM_SETPAGESIZE, 0, (LPARAM)lPageSize);
    }
    virtual void SetRange(LONG lMin, LONG lMax, BOOL bRedraw = FALSE)
    {
        SendMessage(m_hWnd, TBM_SETRANGE, (WPARAM)bRedraw, MAKELPARAM(lMin, lMax));
    }
    virtual void SetThumbPos(LONG lPos, BOOL bRedraw = TRUE)
    {
        SendMessage(m_hWnd, TBM_SETPOS, (WPARAM)bRedraw, lPos);
    }
};
//----------------------------------------------------------------------------

#endif

 次回は、再生時間の設定用にこのクラスを継承した CTimeSlider_MainWnd クラスを作る予定です。

トラックバックURL

このエントリーのトラックバックURL:
http://www.edolfzoku.com/diary/mt-tb.cgi/142

コメントする