Inno setup 在Inno设置中使用轨迹栏控制系统音量
如何在Inno设置中使用trackbar控制系统音量 我们使用bass.dll或mediaplayer.dll播放音乐,但如何使用轨迹栏控制系统音量以管理音量Inno setup 在Inno设置中使用轨迹栏控制系统音量,inno-setup,Inno Setup,如何在Inno设置中使用trackbar控制系统音量 我们使用bass.dll或mediaplayer.dll播放音乐,但如何使用轨迹栏控制系统音量以管理音量 这些库中提供了“可以向前和向后”选项?Inno设置中没有轨迹栏控件 但您可以使用TBitmapImage绘制自己的交互式音量栏: 函数GetCursorPos(var lpPoint:TPoint):BOOL; 外部的GetCursorPos@user32.dllstdcall'; 函数ScreenToClient(hWnd:hWnd;v
这些库中提供了“可以向前和向后”选项?Inno设置中没有轨迹栏控件 但您可以使用
TBitmapImage
绘制自己的交互式音量栏:
函数GetCursorPos(var lpPoint:TPoint):BOOL;
外部的GetCursorPos@user32.dllstdcall';
函数ScreenToClient(hWnd:hWnd;var lpPoint:TPoint):BOOL;
外部的ScreenToClient@user32.dllstdcall';
过程DrawVolume(图像:TBitmapImage;体积:整数);
变量
画布:TCanvas;
宽度:整数;
开始
画布:=Image.Bitmap.Canvas;
Canvas.Pen.Style:=psClear;
宽度:=Image.Bitmap.Width*体积/100
Canvas.Brush.Color:=clHighlight;
画布。矩形(1,1,宽度,图像。位图。高度);
Canvas.Brush.Color:=clBtnFace;
Canvas.Rectangle(宽度-1,1,Image.Bitmap.Width,Image.Bitmap.Height);
Canvas.Pen.Style:=psSolid;
Canvas.Pen.Mode:=pmCopy;
Canvas.Pen.Color:=clBlack;
Canvas.Brush.Style:=bsClear;
Canvas.Rectangle(1,1,Image.Bitmap.Width,Image.Bitmap.Height);
结束;
过程VolumeBarImageClick(发件人:ToObject);
变量
P:TPoint;
图片:TBitmapImage;
体积:整数;
开始
{计算用户在栏中单击的位置}
GetCursorPos(P);
图像:=TBitmapImage(发送方);
ScreenToClient(Image.Parent.Handle,P);
体积:=((P.X-Image.Left)*100/Image.Width)+1;
{更新卷栏}
绘图卷(图像、卷);
{将其替换为设置卷的代码}
MsgBox(格式('将卷设置为%d%%',[volume]),MB信息,MB_OK);
结束;
过程初始化Wizard();
变量
体积基准:TBitmapImage;
开始
VolumeBarImage:=TBitmapImage.Create(WizardForm);
VolumeBarImage.Parent:=向导窗体;
VolumeBarImage.Left:=ScaleX(10);
VolumeBarImage.Top:=WizardForm.ClientHeight-ScaleY(34);
体积基准宽度:=ScaleX(200);
体积基准高度:=刻度(20);
VolumeBarImage.BackColor:=clWhite;
VolumeBarImage.Bitmap.Width:=VolumeBarImage.Width;
VolumeBarImage.Bitmap.Height:=VolumeBarImage.Height;
VolumeBarImage.OnClick:=@VolumeBarImage单击;
{替换为设置为实际初始卷}
提取体积(体积基准,100);
结束;
代码主要来自: