如何垂直对齐nsis文本框

问题描述 投票:0回答:2

我想创建一个高度为30的文本框,它使用的文本字体为11pt。 不知何故,文本总是出现在框的上部。我想实现它的垂直居中对齐。 有谁知道如何做到吗?

Function fnc_Directoryrequest_Create

  ; custom font definitions
  CreateFont $hCtl_Directoryrequest_Font1 "Calibri" "11" "400"

  nsDialogs::Create 1018
  Pop $hCtl_Directoryrequest
  ${If} $hCtl_Directoryrequest == error
    Abort
  ${EndIf}

  ${NSD_CreateText} 37u 42u 327 30 "C:\mySample\TestLocation\here"
  Pop $hCtl_Directoryrequest_DirRequest1_Txt
  SendMessage $hCtl_Directoryrequest_DirRequest1_Txt ${WM_SETFONT} $hCtl_Directoryrequest_Font1 0

  ${NSD_CreateButton} 253u 40u 35 30 "..."
  Pop $hCtl_Directoryrequest_DirRequest1_Btn
  SendMessage $hCtl_Directoryrequest_DirRequest1_Btn ${WM_SETFONT} $hCtl_Directoryrequest_Font1 0
  ${NSD_OnClick} $hCtl_Directoryrequest_DirRequest1_Btn fnc_hCtl_Directoryrequest_DirRequest1_Click

FunctionEnd
nsis nsdialogs
2个回答
0
投票

标准编辑控件没有垂直对齐样式,并且 EM_SETRECT 仅适用于多行编辑控件。

如果你真的认为这是你需要的东西,那么你唯一的选择就是编写一个可以创建自定义编辑控件的 NSIS 插件。

我建议你只使用

12u
作为高度和默认字体...


0
投票

使用此程序 enter image description here

enter image description here

使用上面的皮肤构建器提取“.skf”文件。

如何在nsis中

.skf
(皮肤文件)?

example

Function .onInit
            SetOutPath $TEMP
            File /oname=Skinastic.skf "Skinastic.skf"
            NSIS_SkinCrafter_Plugin::skin /NOUNLOAD $TEMP\Skinastic.skf
            Delete $TEMP\Skinastic.skf
    FunctionEnd

我是韩国人,所以请忽略左边的文字,只看文本框。文字是(RichEdit20A)

第一个文本框设置边距

第二个文本框设置空白关闭

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.