0

たとえば、インストール ページでプログレス バーの位置を変更し、デフォルトの上部の位置ではなく、フォームの中央に配置するにはどうすればよいですか?

4

1 に答える 1

1

A) Resource Hackerで UI ファイルの 1 つを編集し、 ChangeUIで適用します。

また

B)実行時に変更します。

outfile "$%temp%\test.exe"
requestexecutionlevel user
showinstdetails nevershow

Page instfiles "" instfilesshow

Function instfilesshow
FindWindow $9 "#32770" "" $HWNDPARENT
GetDlgItem $8 $9 0x3EC
System::Call '*(i,i,i,i)i.r7' ; Allocate a RECT struct
System::Call 'USER32::GetClientRect(ir9,ir7)'
System::Call '*$7(i,i,i.r0,i.r1)' ; Get inner dialog width/height
System::Call 'USER32::GetWindowRect(ir8,ir7)'
System::Call '*$7(i.r2,i.r3,i.r4,i.r5)'
System::Free $7
IntOp $5 $5 - $3 ; progress height
StrCpy $2 10 ; left padding
IntOp $4 $0 - 20 ; width = dialog - left+right padding
IntOp $0 $5 / 2
IntOp $1 $1 / 2
IntOp $1 $1 - $0
!define SWP_NOZORDER 4
System::Call 'USER32::SetWindowPos(ir8,i0,ir2,ir1,ir4,ir5,i${SWP_NOZORDER})'
FunctionEnd

Section
SectionEnd
于 2012-10-16T14:20:14.967 に答える