Search code examples
nsis

Change the color of the border of a text box in NSIS Graphical Installer


I'm trying to change the color of the border of a text box in NSIS. This changes the background of the text box and of the font:

    SetCtlColors $varPageUserDetails.TextBoxEmail  0x48ffd5 0x0e2a47

This has no effect on the border of the text box (I tried lot's of options):

       ${NSD_AddExStyle} $varPageUserDetails.TextBoxEmail ${WS_EX_CLIENTEDGE}|${WS_EX_TRANSPARENT}

I tried Resource Hacker but didn't find any option to change the border color.

Is my only option is to write a windows application and use ChangeUI?


Solution

  • You generally can't change the border color of standard Windows controls. You can remove the border by not having WS_BORDER nor WS_EX_*EDGE.

    ChangeUI cannot help you here, you would have to write a custom plug-in that subclasses the controls and draws the non-client area with your custom color.

    There are some skinning plug-ins on the NSIS wiki you could also take a look at...