NSIS自定义控件创建

NSIS自定义控件创建

1.创建一个属于自己Design的Button

;下一步
${NSD_CreateButton} 152 270 230 40
Pop $btn_QuickInstall
SkinBtn::Set /IMGID=$PLUGINSDIR\btn_quickinstall.bmp $btn_QuickInstall
GetFunctionAddress $3 OnBtn_QuickInstall;这里Function定义自己事件处理
SkinBtn::onClick $btn_QuickInstall $3
SetCtlColors $btn_QuickInstall “ffffff” transparent ;设置颜色
CreateFont $1 "$(Page_FONT)" "12" "700" ;设置字体
SendMessage $btn_QuickInstall ${WM_SETFONT} $1 1
${NSD_SetFocus} $btn_QuickInstall

;SkinBtn是一个第三方插件,国人开发,支持Button的五种状态:Normal,Hover,Click,Disabled,Focus,正常、鼠标悬浮、单击时、不可用时、获得焦点时五种状态。要注意的就是SkinBtn的五种状态图需要竖行排列,宽高没有限制,但是高度像素最好为5的倍数,下面贴一张示例Button的贴图:

这里写图片描述

这里写图片描述

类似的控件还有:${NSD_CreateCheckBox}${NSD_CreateLabel}${NSD_CreateHLine}${NSD_CreateVLine}${NSD_CreateLabel}${NSD_CreateIcon}${NSD_CreateBitmap}${NSD_CreateBrowseButton}${NSD_CreateLink}${NSD_CreateButton}${NSD_CreateGroupBox}${NSD_CreateCheckBox}${NSD_CreateRadioButton}${NSD_CreateText}${NSD_CreatePassword}${NSD_CreateNumber}${NSD_CreateFileRequest}${NSD_CreateDirRequest}${NSD_CreateComboBox}${NSD_CreateDropList}${NSD_CreateListBox} 
这里就不展示了,感兴趣的可以尝试下。

创建显示License内容的控件

关于License的框如何显示的问题,NSIS的默认窗体有一个专门的协议Page,不过在我们的自定义Page中就不说那个了,在我们的Welcome页面中加入一个协议显示的窗口,这时候需要准备一个协议按钮的贴图,协议窗口。

这里写图片描述

协议的按钮样子看上去是超链接,我们可以通过Button贴图去实现。图片预载入跟贴图的步骤可以参考本篇和图片初始化篇(点击查看)

在做License之前首先要准备一份License的文件,NSIS命令中有读取文件,显示文件内容的命令,该文件可以是Txt,也可以是带有格式的RTF,这里示例中选用RTF文件。而用于显示RTF的控件则是nsDialogs插件提供的RichEdit20A,还要注意引入头文件LoadRTF.nsh。

;读取RTF的文本框
nsDialogs::CreateControl "RichEdit20A" \
${ES_READONLY}|${WS_VISIBLE}|${WS_CHILD}|${WS_TABSTOP}|${WS_VSCROLL}|${ES_MULTILINE}|${ES_WANTRETURN} \
${WS_EX_STATICEDGE} 1 32 528 255 ''
Pop $Txt_License
${LoadRTF} '$PLUGINSDIR\license.rtf' $Txt_License
这样一个,协议的显示控件就创建完毕了。

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨田哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值