Lodester
5th January 2010 18:06 UTC
Label transparency display/overlapping
Hi all. A little new to NSIS so, hopefully this is an easy answer - couldn't find one elsewhere.
I'd been using NSD_SetText in my script to update labels based on workflow/states. I started using transparency for the background instead of a bg color, but now whenever a label is updated with NSD_SetText it displays both the new and the old label "on top of each other".
This appears to be a refresh issue, because if I slide the window off frame and back the correct text only appears.
How to best resolve this? Is there a better instruction to use for this other than NSD_SetText or must I do something to force a refresh? The latter would be discouraging...lots of lines to add --> insert sadface.
Thanks very much for your help
Lodester
6th January 2010 02:37 UTC
So a very unwelcome and undesirable workaround is to issue
ShowWindow $Label ${SW_HIDE}
ShowWindow $Label ${SW_SHOW}
Every time after I send NSD_SetText to $Label that already has text in it.
This can't be the typical way everyone updates transparent background labels, or is a bug in NSD? or I'm just not doing something right/using a better command or method ?
Lodester
6th January 2010 18:35 UTC
Anyone? Is this a bug in nsDialogs with SetText? If so I'd be happy to file a bug report
kichik
17th January 2010 10:15 UTC
That's the way to go. Transparent labels have no background to erase themselves with because you want to see what's behind them. Therefore, to delete them, you have to restore to trickery like this.