Inno Setup進階之窗口初始化(一)


初始化窗口

1. 隱藏默認

  WizardForm.OuterNotebook.hide;  // 隱藏默認的導向內容
  WizardForm.Bevel.hide;          // 隱藏分隔線
  WizardForm.BorderStyle:=bsnone;  // 邊界隱藏

2. 設置窗口大小

  WizardForm.Position:=poScreenCenter; // 位置屏幕居中
  WizardForm.Width:=630;               // 寬
  WizardForm.Height:=408;             // 高
  WizardForm.Color:=$00fd9804;        // 背景顏色

3. 定義窗口拖拽

  WizardForm.OnMouseDown:=@WizardMouseDown       //拖拽

  procedure WizardMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  begin
    ReleaseCapture
    SendMessage(WizardForm.Handle, $0112, $F012, 0)
  end;

4. 自定義頁面圖標添加事件

  ExtractTemporaryFile('btn_close.png');
  ExtractTemporaryFile('btn_min.png');

  // 取消安裝
  CancelBtn:=BtnCreate(WizardForm.Handle,607,8,17,15,ExpandConstant('{tmp}\btn_close.png'),2,False)
  BtnSetEvent(CancelBtn,BtnClickEventID,WrapBtnCallback(@CancelBtnOnClick,1));
	
  // 最小化窗口	
  MinBtn:=BtnCreate(WizardForm.Handle,587,4,17,15,ExpandConstant('{tmp}\btn_min.png'),1,False)
  BtnSetEvent(MinBtn,BtnClickEventID,WrapBtnCallback(@MinBtnOnClick,1));

5. 背景

  // 背景顏色
  WizardForm.Color:=$00fd9804; // $00bgr

  // 背景圖片
  ExtractTemporaryFile('xy.png');
  BGimg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\xy.png'),0,0,650,408,false,false);
  ImgApplyChanges(WizardForm.Handle);

6. 向導頁處理邏輯

  procedure CurPageChanged(CurPageID: Integer);
  begin
  
    WizardForm.NextButton.Visible:=false;
    WizardForm.CancelButton.Height:=0;
    WizardForm.BackButton.Height:=0;
  
    if CurPageID = wpWelcome then
  	WizardForm.NextButton.OnClick(WizardForm);
  end;

完整代碼

[code]
#include  'dll.iss'

var CancelBtn, MinBtn:HWND;

// 取消按鈕
procedure CancelBtnOnClick(hBtn:HWND);
begin
 WizardForm.CancelButton.Click;
end;

// 最小化按鈕
procedure MinBtnOnClick(hBtn:HWND);
begin
SendMessage(WizardForm.Handle,WM_SYSCOMMAND,61472,0);
end;

// 拖拽
procedure WizardMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture
  SendMessage(WizardForm.Handle, $0112, $F012, 0)
end;

procedure InitializeWizard();

begin
  WizardForm.OuterNotebook.hide;  // 隱藏默認的導向內容
  WizardForm.Bevel.hide;          // 隱藏分隔線
  WizardForm.BorderStyle:=bsnone;  // 邊界隱藏
  WizardForm.Position:=poScreenCenter; // 位置屏幕居中
  WizardForm.Width:=630;               // 寬
  WizardForm.Height:=408;             // 高
  WizardForm.Color:=$00fd9804;        // 背景顏色
  WizardForm.NextButton.hide;
  
  WizardForm.OnMouseDown:=@WizardMouseDown       //拖拽

  ExtractTemporaryFile('btn_close.png');
  ExtractTemporaryFile('btn_min.png');

  CancelBtn:=BtnCreate(WizardForm.Handle,607,8,17,15,ExpandConstant('{tmp}\btn_close.png'),2,False)
  BtnSetEvent(CancelBtn,BtnClickEventID,WrapBtnCallback(@CancelBtnOnClick,1));

  MinBtn:=BtnCreate(WizardForm.Handle,587,4,17,15,ExpandConstant('{tmp}\btn_min.png'),1,False)
  BtnSetEvent(MinBtn,BtnClickEventID,WrapBtnCallback(@MinBtnOnClick,1));

end;

procedure  DeinitializeSetup();
begin
   gdipShutdown;
end;

procedure CurPageChanged(CurPageID: Integer);
begin

  WizardForm.NextButton.Visible:=false;
  WizardForm.CancelButton.Height:=0;
  WizardForm.BackButton.Height:=0;

  if CurPageID = wpWelcome then
    WizardForm.NextButton.OnClick(WizardForm);
end;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM