Inno setup 在Inno设置中使用轨迹栏控制系统音量

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设置中使用trackbar控制系统音量

我们使用bass.dll或mediaplayer.dll播放音乐,但如何使用轨迹栏控制系统音量以管理音量


这些库中提供了“可以向前和向后”选项?

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); 结束;


代码主要来自: