KerberX
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору bukreevladimir Возможность есть. Вот для Input (требуется MemoryEx, можно переписать используя DLL.CallFunction, но мне лень): Код: function Input.SetStyle(sObjectName) local tInfo = Input.GetProperties(sObjectName); if tInfo ~= nil then Input.SetProperties(sObjectName, {Border = BORDER_SUNKEN}); local GWL_STYLE = -16; local GWL_EXSTYLE = -20; local WS_CHILD = 0x40000000; local WS_VISIBLE = 0x10000000; local WS_TABSTOP = 0x00010000; local ES_AUTOHSCROLL = 0x0080; local WS_VSCROLL = 0x00200000; local ES_MULTILINE = 0x0004; local WS_BORDER = 0x00000200; local WS_EX_CLIENTEDGE = 0x00800000; local hWnd = Input.GetProperties(sObjectName).WindowHandle; local nStyle = WS_CHILD + WS_VISIBLE + WS_TABSTOP + ES_AUTOHSCROLL; if tInfo.Multiline == true then nStyle = nStyle + ES_MULTILINE + WS_VSCROLL + WS_BORDER; end local hDLL = Library.Load("user32.dll", false); hDLL.SetWindowLongA(hWnd, GWL_STYLE, nStyle); hDLL:Close_(); -- local tSize = Input.GetSize(sObjectName); Input.SetSize(sObjectName, tSize.Width, tSize.Height + 1); Input.SetSize(sObjectName, tSize.Width, tSize.Height); end end | Для Progress: Код: function Progress.SetStyle(ObjectName) local GWL_STYLE = -16; -- local WS_CHILD = 0x40000000; local WS_VISIBLE = 0x10000000; -- local tData = Progress.GetProperties(ObjectName); if tData ~= nil then local hWnd = tData.WindowHandle; -- local nStyle = WS_CHILD + WS_VISIBLE; DLL.CallFunction("user32.dll", "SetWindowLongA", hWnd..","..GWL_STYLE..","..nStyle, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL); -- local tSize = Progress.GetSize(ObjectName); Progress.SetSize(ObjectName, tSize.Width, tSize.Height+1); Progress.SetSize(ObjectName, tSize.Width, tSize.Height); end end | С TreeView должно быть примерно также. |