如何垂直对齐nsis文本框



我想创建一个高度为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:mySampleTestLocationhere"
  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

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

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

我建议你只使用12u作为高度和默认字体。。。

最新更新