●オーディオプレイヤ開発記 その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 クラスを作る予定です。