Некоторые еретические мнения ...
Я бы не рекомендовал C ++ для написания сложных графических интерфейсов Windows - языковые / библиотечные комбинации, такие как C # или Delphi, намного более продуктивны. Если вы хотите заняться программированием на C ++, я бы предложил использовать его для написания многопоточного сервера - простой веб-сервер подойдет для начинающих.
И если вы действительно хотите понять базовые API-интерфейсы Windows, я думаю, что есть что сказать для написания простого приложения (например, упрощенной версии ноутбука) на C (не C ++). Вы захотите сделать это только один раз, но в процессе вы многому научитесь.
И прежде чем кто-то начнет безумно понижать голосование, позвольте мне сказать, что я программист на C ++ более 20 лет и действительно люблю язык.