diff --git a/Source/exehead/Ui.c b/Source/exehead/Ui.c index b4cd7fde..615b84c6 100644 --- a/Source/exehead/Ui.c +++ b/Source/exehead/Ui.c @@ -126,14 +126,7 @@ static BOOL NSISCALL SetDlgItemTextFromLang_(HWND dlg, int id, int lid) { #ifdef NSIS_CONFIG_ENHANCEDUI_SUPPORT #define HandleStaticBkColor() _HandleStaticBkColor(uMsg, lParam) static BOOL NSISCALL _HandleStaticBkColor(UINT uMsg, LPARAM lParam) { - if (uMsg == WM_CTLCOLORSTATIC) { - COLORREF color = GetWindowLong((HWND)lParam, GWL_USERDATA); - if (color) { - LOGBRUSH b={BS_SOLID, color-1, 0}; - SetBkColor(GetDC((HWND)lParam), b.lbColor); - return (BOOL)CreateBrushIndirect(&b); - } - } + if (uMsg == WM_CTLCOLORSTATIC) return (BOOL)GetWindowLong((HWND)lParam, GWL_USERDATA); return 0; } #else diff --git a/Source/exehead/exec.c b/Source/exehead/exec.c index 653cecdd..791068cc 100644 --- a/Source/exehead/exec.c +++ b/Source/exehead/exec.c @@ -762,11 +762,11 @@ static int NSISCALL ExecuteEntry(entry *entry_) ) ); return 0; - case EW_SETWINDOWLONG: + case EW_SETSTATICBKCOLOR: SetWindowLong( (HWND)process_string_fromparm_toint(0), - process_string_fromparm_toint(1), - process_string_fromparm_toint(2) + GWL_USERDATA, + (LONG)CreateSolidBrush(parm1) ); return 0; case EW_SETBRANDINGIMAGE: diff --git a/Source/exehead/fileform.h b/Source/exehead/fileform.h index 4f94257a..e9bbf136 100644 --- a/Source/exehead/fileform.h +++ b/Source/exehead/fileform.h @@ -93,8 +93,8 @@ enum #endif #ifdef NSIS_CONFIG_ENHANCEDUI_SUPPORT - EW_GETDLGITEM, // GetDlgItem: 3 [outputvar, dialog, item_id] - EW_SETWINDOWLONG, // SetWindowLong (used by StaticBkColor): 3 [hwnd, which(numeric), value] + EW_GETDLGITEM, // GetDlgItem: 3 [outputvar, dialog, item_id] + EW_SETSTATICBKCOLOR, // SerStaticBkColor: 3 [hwnd, color] EW_SETBRANDINGIMAGE, // SetBrandingImage: 1: [Bitmap file] EW_CREATEFONT, // CreateFont: 5: [handle output, face name, height, weight, flags] EW_SHOWWINDOW, // ShowWindow: 2: [hwnd, show state] diff --git a/Source/script.cpp b/Source/script.cpp index 3b394272..d4bf2a02 100644 --- a/Source/script.cpp +++ b/Source/script.cpp @@ -2583,22 +2583,11 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char SCRIPT_MSG("GetDlgItem: output=%s dialog=%s item=%s\n",line.gettoken_str(1),line.gettoken_str(2),line.gettoken_str(3)); return add_entry(&ent); case TOK_SETSTATICBKCOLOR: - ent.which=EW_SETWINDOWLONG; + ent.which=EW_SETSTATICBKCOLOR; ent.offsets[0]=add_string(line.gettoken_str(1)); - char temp[64]; - wsprintf(temp, "%d", GWL_USERDATA); - ent.offsets[1]=add_string(temp); - wsprintf(temp, "%d", line.gettoken_int(2)+1); - ent.offsets[2]=add_string(temp); + ent.offsets[1]=line.gettoken_int(2); SCRIPT_MSG("SetStaticBkColor: handle=%s color=%s\n",line.gettoken_str(1),line.gettoken_str(2)); return add_entry(&ent); - case TOK_SETWINDOWLONG: - ent.which=EW_SETWINDOWLONG; - ent.offsets[0]=add_string(line.gettoken_str(1)); - ent.offsets[1]=add_string(line.gettoken_str(2)); - ent.offsets[2]=add_string(line.gettoken_str(3)); - SCRIPT_MSG("SetWindowLong: handle=%s index=%s new long=%s\n",line.gettoken_str(1),line.gettoken_str(2),line.gettoken_str(3)); - return add_entry(&ent); case TOK_CREATEFONT: ent.which=EW_CREATEFONT; ent.offsets[0]=line.gettoken_enum(1,usrvars); @@ -2658,7 +2647,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char #else//NSIS_CONFIG_ENHANCEDUI_SUPPORT case TOK_GETDLGITEM: case TOK_SETSTATICBKCOLOR: - case TOK_SETWINDOWLONG: case TOK_SHOWWINDOW: case TOK_CREATEFONT: ERROR_MSG("Error: %s specified, NSIS_CONFIG_ENHANCEDUI_SUPPORT not defined.\n", line.gettoken_str(0)); @@ -2670,7 +2658,6 @@ int CEXEBuild::doCommand(int which_token, LineParser &line, FILE *fp, const char case TOK_FINDWINDOW: case TOK_GETDLGITEM: case TOK_SETSTATICBKCOLOR: - case TOK_SETWINDOWLONG: case TOK_SHOWWINDOW: case TOK_CREATEFONT: ERROR_MSG("Error: %s specified, NSIS_SUPPORT_HWNDS not defined.\n", line.gettoken_str(0));