Библиотеки Microsoft:
Из неуправляемого C ++ вы можете использовать собственный Win32 API, MFC или ATL / WTL.
Собственный Win32 API представляет собой набор методов в стиле C, предоставляемых семейством операционных систем Windows. Эти API работают, управляя окнами и циклами сообщений. Вы можете начать читать о Win32 в разделе MSDN Windowing .
MFC - это библиотека классов C ++, которая предоставляет богатые объектно-ориентированные оболочки для Win32 API. Он абстрагирует окна Win32 как класс CWindow и циклы сообщений как CMessageMap. Вы можете узнать больше о MFC на MSDN.
ATL / WTL - это легковесная библиотека шаблонов C ++, которая начиналась как оболочка C ++ для COM, а затем переняла некоторые идеи из MFC (таким образом, разделяя те же имена классов) для поддержки оконного режима Win32. Поддержка окон ATL была позже разделена на WTL, который затем был выпущен как открытый исходный код. Поддержка окон ATL документирована в MSDN в разделе Классы окон ATL .
В управляемом C ++ вы можете использовать либо WinForms, либо WPF. Оба довольно подробно описаны в MSDN, хотя их документация и примеры сильно перекошены для C # и VB.Net. Я лично также рекомендую вам взглянуть на C #, если вы хотите изучить эти платформы пользовательского интерфейса.
Что вам нужно для этого:
Конечно, сначала вам нужен компилятор C ++. : -)
Чтобы использовать Win32 API, вам нужен только Windows SDK и дополнительно Visual C ++ Express .
Чтобы использовать MFC и ATL, вам необходим один из выпусков Visual Studio Professional или более поздней версии. ATL и MFC не включены в Visual C ++ Express. (ATL / MFC может быть включен в WIndows SDK или другие бесплатные продукты, о которых я не знаю.)
WTL 8.0 доступен для бесплатной загрузки . Вы также можете получить источники WTL из Source Forge WTL проекта .
Чтобы использовать WinForms или WPF, вам нужна последняя .Net Framework (ну, в общем, вам нужна любая .Net Framework :-)) и опционально Visual C # / VB.Net Express . Я не уверен, поддерживает ли Visual C ++ Express управляемый C ++.
Сторонние опции:
Существует несколько сторонних библиотек C ++, которые обертывают / абстрагируют собственные API Win32. Некоторые из них достаточно абстрактны, чтобы позволить разработку пользовательского интерфейса не только для Windows, но и для других платформ. Qt и wxWidgets - пара, о которой я знаю, но никогда не использовал.