VSTGUI:Slider

本次给VST增加了Slider控件,主要是重载AEffGUIEditor类及其open,close函数。

1. ctor

使用BMP图片,new一个CBitmap。
给AEffGUIEditor::rect初始化。

AEffGuiComp::AEffGuiComp(AudioEffect * effect)
:AEffGUIEditor(effect)
{
	m_pbmp_back = new CBitmap(IDB_BACK);

	rect.left = 0;
	rect.top = 0; 
	rect.right = (VstInt16)m_pbmp_back->getWidth();
	rect.bottom = (VstInt16)m_pbmp_back->getHeight();

}

2. dtor

CBitmap指针调用forget释放资源。

AEffGuiComp::~AEffGuiComp()
{
	if (m_pbmp_back != nullptr)
	{
		m_pbmp_back->forget();
		m_pbmp_back = nullptr;
	}		
}

3. open

new一个CFrame;
new一个CView,通过调用addView放到frame里。
new一个CVerticalSlider,放到frame里。最后把除了背景以外的bmp forget()掉。

4. CVerticalSlider

一个CVerticalSlider需要两张图片,thumb和background。background即决定了Slider的大小。
构造CVerticalSlider时建议MinPos给rectBmpBackground.top,MaxPos给rectBmpBackground.bottom - rectBmpThumb.Height。offset设成(0, rectBmpThumb.Height)。

	m_p_sld_ratio =
		new CVerticalSlider(
		rc_slider_size, 
		0// this, 
		0// PARA_RATIO, 
		rc_slider_size.top, rc_slider_size.bottom - 40,
		pbmp_thumb, pbmp_sld_back,
		CPoint(0,40),kTop);

最基本的带Slider的界面完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值