D' Normalization расписал все правильно, только в действительности все несколько сложнее. Функции создания окна (меню и все элементы управления - тоже окна; windows же) нигде не принимают цвет через параметр. По умолчанию окна отрисовываются в цветах системной "темы". Чтобы переопределить цвета, надо перехватывать WndProc соответствующего окна, в нем на событие WM_PAINT
устанавливать цвет Pen и Brush, пересылать сообщение оригинальному обработчику и надеяться на то что он сам не переопределяет Pen и Brush на каждый вызов WM_PAINT.
Придется дописывать много кода, компилировать его так что-бы в нем или совсем не было абсолютных адресов (относительные short jumps) или все абсолютные адреса точно попадали в ту область, в которую предполагается вставка. Тут уже без ассемблера не обойтись (сколько же на Тостере за последнее время вопросов: "Где ассемблер незаменим?").
Далее идет внедрение кода, как у вирусов. На эту тему можно много литературы найти. Если коротко, то есть два варианта: 1) дописать свой код в "хвост" секции кода, если поместится; 2) создать еще одну секцию кода в конце файла, это вариант открывает больше возможностей, но большинство антивирусов будут ругаться на такой exe-шник.
Потом найти точку для патча, вырезать оттуда часть кода (например, вызов api-функции с подготовкой аргументов), перенести в свой код, а в той точке пропатчить что-то типа
call our_code_block \ nop \ nop \ nop ....
В общем задачка очень серьезная и с наскока такое не решается.