мои 5 копеек.
WinAPI это НЕ язык программирования. это всего лишь набор инструментов (отвертки разного размера и формы для периодического подкручивания ОС Виндовс чтобы не развалилось). этот набор инструментов может быть использован из любого (практически любого) язык программирования, будть то С++, "чистый" С, Паскаль, ассемблер, Вижуал Бэйсик, Питон и т.д. - выбирайте какой знаете лучше всего или какой нравится больше всего и смотрите в нем поддержку WinAPI.
Языки бывают интерпретируемые (Питон, Пёрл, командная строка Виндовс и т.д.) и компиллируемые (С, С++, ассемблер). Например в командой строке можно сделать так: rundll32 user32, MessageBox "Hello World" - будет вам окошко с кнопочками и текстом Хелло ворлд. ничего компилить не надо. обычная строка текста, набранная в обычном блокноте (и, например, сохраненная как .bat файл), исполняемая через интерпретатор (в данном примере программа rundll32). Примерно так же пишутся интерпретируемые программы на Питоне - набирай инструкции хоть в блокноте, хоть в MS Word, сохраняй как обычный текстовый файл и запускай через интерпретатор python.exe - никакой компиляции и линковки. НО сам интерпретатор должен быть установлен на машину.
Для сборки исполняемого файла, независимого от интерпретатров и погоды за окном нужен компилятор и сборщик/линковщик (обычно всегда 2 в 1 идет). Лично мне сложно дать вам совет насчет язык, т.к. не знаю вашего бэкграунда. Если чистый лист - то все равно. Берите С++, С и т.д. в любом языке есть прос и конс, сложности и приятности. Программу (инструкции) можно писать где угодно - хоть в блокноте, хоть в навороченной Visual Studio 2010 - не важно. Важно понимать процесс компиляции и линковки - гугл знает ответы на все ваши вопросы, 100%. Скажу что ничего сложного в этом нет.
Касательно самого задания, смотрите в сторону WndProc. Дальше гугл вам поможет, например
http://www.functionx.com/win32/Lesson05.htmСлишком обширная тема для обсуждения. Невозможно научить программированию под виндовс на ВинАПИ в одном посте =)
Задавайте вопросы.