因为没找到ComboBox组合框本身有提供快捷键的属性(就是要按下快捷键后使焦点置于其上),于是网上搜代码,然后自己瞎改实现了此功能,但又被按下ALT组合键时发出的“噔”的一声提示音给难住了,请大大们指点迷津。
我将ALT+G设为了组合框的快捷键,的确有效,但按下ALT+G时,总会有“噔”的一声提示音,我试了其它ALT组合键,只要是没有用处的快捷键,都是有这声音的,这应该是Windows本身的设置,不用管它。但如果是有用处的快捷键,比如ALT+N(下一步),ALT+T(示例中CheckBox本身提供的快捷键属性),都是没有声音的。
所以现在应该怎样让ALT+G这个有作用的快捷键不发出声音?
以下是示例代码:
- #define MyAppName "My Program"
- #define MyAppVersion "1.5"
- #define MyAppPublisher "My Company, Inc."
- #define MyAppURL "http://www.example.com/"
- #define MyAppExeName "MyProg.exe"
- [Setup]
- AppId={{BE69B2F2-3329-466D-8A56-28DBA57C8BAA}
- AppName={#MyAppName}
- AppVersion={#MyAppVersion}
- AppPublisher={#MyAppPublisher}
- AppPublisherURL={#MyAppURL}
- AppSupportURL={#MyAppURL}
- AppUpdatesURL={#MyAppURL}
- CreateAppDir=no
- DisableWelcomePage=yes
- Compression=lzma
- SolidCompression=yes
- [Code]
- var
- Page: TWizardPage;
- CheckBox: TNewCheckBox;
- ComboBox: TNewComboBox;
- procedure WizardFormOnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
- begin
- if (Shift = [ssAlt]) and (key = 71) then begin
- WizardForm.ActiveControl := ComboBox;
- end;
- end;
- procedure InitializeWizard();
- begin
- Page := CreateCustomPage(wpWelcome, '', '');
- CheckBox := TNewCheckBox.Create(Page);
- CheckBox.Caption := '测试(&T)';
- CheckBox.Parent := Page.Surface;
- ComboBox := TNewComboBox.Create(Page);
- ComboBox.Top := CheckBox.Top + CheckBox.Height + ScaleY(8);
- ComboBox.Parent := Page.Surface;
- ComboBox.Style := csDropDownList;
- ComboBox.Items.Add('测试1');
- ComboBox.Items.Add('测试2');
- WizardForm.OnKeyDown := @WizardFormOnKeyDown;
- WizardForm.KeyPreview := True;
- end;