Нашел на одном из торрентов
DrawPlus Х5 (тянул 2 дня, т.к. был один сид) и глянул вашу проблему. Если она еще актуальна, то предлагаю решение. Надеюсь, что вы умеете работать в отладчике OllyDbg. Итак нас интересует элемент управления с надписью "
Opacity":
ID элемента равно
FFFF, а его размеры 40х15 (ширина=40 (
28h), высота=15 (
Fh)). Загрузим исполняемый файл программы в отладчик OllyDbg и выполним поиск константы FFFF. Обычно, перед вызовом ID элемента идет инициализация его свойств (размеры, надпись, шрифт, цвет и т.д.) которые, обычно, выполняются командой
PUSH. Получив список найденных констант, просмотрите код программы, по каждому пункту. Необходимо обращать внимание на то, чтобы рядом находились значения высоты или ширины искомого элемента. Но в данном случае мы ничего не найдем. Тогда можно попытаться определить место инициализации нашего элемента по ID строки с надписью "Opacity". Возможно где-то рядом есть вызов размеров элемента посредством условных или безусловных переходов, или при помощи вложенных функций или процедур (CALL). ID строки можно узнать в любом редакторе ресурсов, например, в том же Radialix:
Как видите порядковый номер строки 49, в шестнадцатеричном формате это значение
31h. Теперь в отладчике, нужно просмотреть код программы со всеми найденными значениями FFFF и обращать на команду помещения в стек значения 31h перед тем, как будет занесено в стек значение FFFF. Вы найдете одно такое место в коде программы:
Отметьте себе где-то найденный адрес, например, установите на него точку останова (бряк). Итак, у меня это адрес
0052DD38. Если просмотреть код чуть выше по листингу, или исследовать все рядом расположенные процедуры, то нас опять постигнет неудача: рядом нигде нет инициализации таких свойств данного элемента, как ширина (28h) и высота (Fh). Значит их формирование идет отдельным блоком (подпрограммой) где-то ранее. Как найти это место?
Зайдем с другой стороны. Выполним поиск другого, рядом расположенного элемента. Например элемента, который показывает значение в процентах параметра "Opacity". Вообще из своего опыта скажу, что если не удается напрямую найти элемент ни по его ID или по одному из размеров, то ищите его по одному из рядом расположенных элементов, у которого размеры выбиваются из ряда стандартных для данного интерфейса программы или являются уникальными. Выяснить это можно при помощи утилиты WinSpy и анализом значений размеров.
Его ID=D7B, тут же выпишем себе его размеры ширина=31 (
1Fh), высота=18 (
12h). Выполним поиск константы
1Fh, которая обозначает ширину данного элемента управления. Получим довольно внушительный список. Но, в первую очередь просмотрите только команды
PUSH, и те, что находятся рядом с адресом 0052DD38, который мы нашли ранее, где в стек помещается ID строки "Opacity". В данном случае это адрес
0052B0FD.
Перейдем на этот адрес в отладчике и посмотрим на код. Здесь сразу бросается в глаза расположенная рядом команда PUSH 12. 12h в десятичном формате это число 18, которое также соответствует высоте элемента. Внимательный взгляд заметит также, что в данном участке кода похоже перечисляются размеры элементов управления исследуемой нами части интерфейса программы.
Теперь пролистайте листинг вверх, пока вам на глаза не попадутся значения ширины и высоты элемента управления с надписью "Opacity". Вот они:
Измените значение 28h, например, на 64h (100 px), сохраните изменения в файле. Вот и все. После перевода строка будет полностью помещаться в элементе. Можно, конечно, процедуру корректировки размеров элемента сделать после перевода, когда будет получен локализованный файл программы. Тогда в отладчике нужно будет уже работать с ним.
P.S. До этого был уверен, что в программах не может быть элементов управления с одинаковыми идентификаторами. Но продукция этого разработчика, в лице программы DrawPlus Х5, поломала этот стереотип.