InstallShield自定义对话框浅谈(二) (转)

本文介绍如何使用InstallShield创建自定义对话框,并通过编写脚本控制对话框中控件的有效性。具体示例展示了如何根据用户输入动态启用或禁用控件,确保在配置SQL Server数据源时输入完整。
InstallShield自定义对话框浅谈(二) (转)[@more@]

二、 根据输入控制对话框上控件的有效性
在自定义了一个对话框之后,可能需要对对话框上的控件之间的关系进行一些控制,比如当选中了某单选框后,使一些控件有效,而选中其他的单选框后,另一些控件有效等等。要实现这些功能,就需要手动编写InstallShield脚本来实现了。
下面是一个在安装向导中添加了一个自定义对话框,在该步骤中实现在安装的时候在本机器上添加一个sql SERVER的数据源。图“自定义对话框效果图”是该自定义对话框的运行效果图:
 

在该自定义对话框中,除了要完成配置SQL SERVER的数据源之外,还要完成其他一些辅助功能。为了在本机器上配置一个SQL Server数据源,需要输入该数据源的名称、该数据源是针对那个服务器的以及配置的是用户数据源还是系统数据源等数据,而数据库和服务器用户及口令则是完成辅助功能所需要的。只有当输入了必须的数据(如:服务器、数据库、用户名称、数据源等)之后,按钮“下一步”才能有效,为了达到这个要求,就需要对用户的输入进行判断,在InstallShield中可以用WaitOnDialog来得到当前对话框的事件。下面是完成该功能的一个完整脚本代码:

///////////////////////////////////////////////////////////////////////
// kdcis.rul
//
///////////////////////////////////////////////////////////////////////

#ifndef __KDCIS_RUL_
#define __KDCIS_RUL_

#include "winsysdll.h"
 //
 // Pre-defined script dialog constants
 // 

  // ----- Attribute Dialog Controls ------
#define DLG_DSN_SQLSERVER 30001

#define IDC_RADIO_DSN_USER 1001
#define IDC_RADIO_DSN_SYSTEM 1002
#define IDC_EDIT_db_ADDR  1003
#define IDC_EDIT_SQLSERVER_USER_NAME 1004
#define IDC_EDIT_SQLSERVER_USER_PWD 1005
#define IDC_EDIT_SQLSERVER_DSN 1006
#define IDC_EDIT_SQLSERVER_DB 1007

  file://----------------------
  // Function prototypes
  file://----------------------


///////////////////////////////////////////////////////////////
// 显示配置SQLSERVER数据源对话框
// 参数:
//  BOOL bFirstStep:是安装的第一步吗?
//  BOOL bAllowNotSet:是否允许跳过本次设置
//  BYVAL STRING szTitle:对话框的标题
///////////////////////////////////////////////////////////////
prototype BuildSQLServerDSN(BOOL, BOOL, BYVAL STRING);


///////////////////////////////////////////////////////////////
// 校验配置数据源对话框的输入有效性
// 参数:
//  HWND hwndDlg:配置对话框的句柄,从CmdGetHwndDlg中得到
//  BOOL bAllowNotSet:是否允许跳过本次设置
// 备注:
//  CheckSQLServerDSNInputValid:对SQLSERVER数据源配置进行校验
//////////////////////////////////////////////////////////////
prototype CheckSQLServerDSNInputValid(HWND, BOOL);
 
  file://----------------------
  // Variable declaration
  file://---------------------- 
 
  file://----------------------
  // Macro declaration
  file://----------------------
#define DSN_SQLSERVER_DLG "ConfigSQLServerDSNDLG"


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10794571/viewspace-974710/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10794571/viewspace-974710/

先看效果: https://renmaiwang.cn/s/jkhfz Hue系列产品将具备高度的个性化定制能力,并且借助内置红、蓝、绿三原色LED的灯泡,能够混合生成1600万种不同色彩的灯光。 整个操作流程完全由安装于iPhone上的应用程序进行管理。 这一创新举措为智能照明控制领域带来了新的启示,国内相关领域的从业者也积极投身于相关研究。 鉴于Hue产品采用WiFi无线连接方式,而国内WiFi网络尚未全面覆盖,本研究选择应用更为普及的蓝牙技术,通过手机蓝牙与单片机进行数据交互,进而产生可调节占空比的PWM信号,以此来控制LED驱动电路,实现LED的调光功能以及DIY调色方案。 本文重点阐述了一种基于手机蓝牙通信的LED灯设计方案,该方案受到飞利浦Hue智能灯泡的启发,但考虑到国内WiFi网络的覆盖限制,故而选用更为通用的蓝牙技术。 以下为相关技术细节的详尽介绍:1. **智能照明控制系统**:智能照明控制系统允许用户借助手机应用程序实现远程控制照明设备,提供个性化的调光及色彩调整功能。 飞利浦Hue作为行业领先者,通过红、蓝、绿三原色LED的混合,能够呈现1600万种颜色,实现了全面的定制化体验。 2. **蓝牙通信技术**:蓝牙技术是一种低成本、短距离的无线传输方案,工作于2.4GHz ISM频段,具备即插即用和强抗干扰能力。 蓝牙协议栈由硬件层和软件层构成,提供通用访问Profile、服务发现应用Profile以及串口Profiles等丰富功能,确保不同设备间的良好互操作性。 3. **脉冲宽度调制调光**:脉冲宽度调制(PWM)是一种高效能的调光方式,通过调节脉冲宽度来控制LED的亮度。 当PWM频率超过200Hz时,人眼无法察觉明显的闪烁现象。 占空比指的...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值