Installation NSIS安装程序MUI_页眉_文本-可以部分使用粗体字体吗?

Installation NSIS安装程序MUI_页眉_文本-可以部分使用粗体字体吗?,installation,nsis,Installation,Nsis,有没有办法将安装程序的部分MUI_标题_文本设置为粗体字体 我在${NSD_CreateLabel}上看到了字体示例,但没有看到标题文本 !!插入MACRO MUI_头_文本“Main”子文本,并带有一个粗体“我发现这是不可能的 我确实找到了一个解决方案,可以轻松地将自定义字体添加到标签中,而无需猜测工作 我使用了这个编辑器并将脚本粘贴到我的设置中 Windows通常不支持单个控件中的不同字体。标题文本也是一个标签($mui.header.SubText在MUIv2中) 有些人在需要粗体部分时会

有没有办法将安装程序的部分MUI_标题_文本设置为粗体字体

我在${NSD_CreateLabel}上看到了字体示例,但没有看到标题文本


!!插入MACRO MUI_头_文本“Main”子文本,并带有一个粗体

我发现这是不可能的

我确实找到了一个解决方案,可以轻松地将自定义字体添加到标签中,而无需猜测工作


我使用了这个编辑器并将脚本粘贴到我的设置中

Windows通常不支持单个控件中的不同字体。标题文本也是一个标签(
$mui.header.SubText
在MUIv2中)

有些人在需要粗体部分时会使用两个标签,但要使其正确对齐有点麻烦,而且无法对标题文本进行对齐,因为当您从欢迎/完成样式页面切换到“正常”页面时,MUI需要隐藏/显示这些标签

唯一支持部分粗体文本的控件是RichEdit控件,并带有一些黑客攻击:

!define MUI_CUSTOMFUNCTION_GUIINIT MyGuiInit
!include MUI2.nsh
Page Custom MyPageCreate
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE English

!include Util.nsh
Function MyGuiInit
!ifndef NSIS_CONFIG_LICENSEPAGE
    System::Call 'KERNEL32::LoadLibrary(t "RichEd20")'
    System::Call 'KERNEL32::LoadLibrary(t "RichEd32")'
!endif
StrCpy $0 $HWNDPARENT
ShowWindow $mui.Header.SubText 0
StrCpy $2 $mui.Header.SubText
System::Call 'USER32::GetWindowRect(p$2, @r1)'
${IntPtrOp} $3 $1 + 8 
System::Call 'USER32::MapWindowPoints(p0,p$2,p$3,i1)'
System::Call '*$1(&i4i,&i4i,&i4i.r5,&i4i.r6)' ;w&h
System::Call 'USER32::MapWindowPoints(p0,p$0,p$1,i1)'
System::Call '*$1(&i4i.r3,&i4i.r4)' ;l&t

;Try both richedit classes
StrCpy $7 "RichEdit20A"
createRich:
System::Call 'USER32::CreateWindowEx(i ${WS_EX_TRANSPARENT},tr7,p0,\
    i ${WS_VISIBLE}|${WS_CHILD}|${WS_CLIPSIBLINGS}|${ES_READONLY}|${ES_MULTILINE}|${ES_WANTRETURN},\
    i $3,i $4,i $5,i $6,p $0,p0,p0,p0)i.s'
pop $mui.Header.SubText
${If} $mui.Header.SubText = 0
${AndIf} $7 == "RichEdit20A"
    StrCpy $7 "RichEdit"
    goto createRich
${EndIf}

System::Call USER32::BringWindowToTop(p$mui.Header.SubText)
!define /IfNDef /Math EM_SETCHARFORMAT ${WM_USER} + 68
!define /IfNDef LF_FACESIZE 32
!define /IfNDef CFM_COLOR 0x40000000
; Forcing color does not work?
#System::Call '*$1(&l4,i${CFM_COLOR},i0,i,i,i0x${MUI_BGCOLOR},&i1,&i1,&i2,&m${LF_FACESIZE})'
#SendMessage $mui.Header.SubText ${EM_SETCHARFORMAT} 0 $1 $9
#SendMessage $mui.Header.SubText ${EM_SETBKGNDCOLOR} 0 0x${MUI_BGCOLOR}
SendMessage $2 ${WM_GETFONT} 0 0 $1
SendMessage $mui.Header.SubText ${WM_SETFONT} $1 1
FunctionEnd

Function MyPageCreate
!insertmacro MUI_HEADER_TEXT "Main" "{\rtf1{Subtext with a \b Bold \b0 }"
nsDialogs::Create 1018
Pop $0
nsDialogs::Show
FunctionEnd