Не принял он программу не потому ли, что при проведении мыши по меню остаются артефакты на экране? Так это происходит только от того, что ты должна скрывать отображение мышиного курсора перед перерисовкой меню (именно скрывать, а не удалять его вообще через DeleteCur), а после перерисовки меню - показывать его снова, тогда таких глюков не будет...
Как написать функцию, скрывающую/восстанавливающую курсор мыши, можно посмотреть здесь:
FAQ ->
МЫШЬ. Все о программировании мыши.(процедуры ShowMouse/HideMouse)