Программирование на C++ с графическим интерфейсом пользователя Windows

Я хочу изучить программирование графического интерфейса пользователя на C++ с помощью Visual Studio 2008. Я не знаю, с чего начать. Я изучал C++ в средней школе, но не графический интерфейс. Я занимаюсь C# около 3 лет, и именно так я «научился» программированию графического интерфейса. Теперь я хочу научиться писать графический интерфейс без использования .NET framework, так с чего мне начать?

Ответов (7)

Решение

MFC сейчас практически устарел. Я бы рекомендовал вместо этого использовать WTL.

Что ж, это также не лучшая идея просто начинать программировать для GUI на C++, когда доступно так много хороших фреймворков, как кроссплатформенный фреймворк QT.

На данный момент (Windows 8), WinRT, совершенно новый API был представлен аудитории Microsoft, и я очень рад этому. Никогда не занимался программированием MFC, но видел несколько примеров кода, и они странно выглядят в стиле C 90-х (современный стиль C часто лучше!). Итак, не собираясь начинать непосредственно с MFC, я думаю, что начну с WinRT.

:)

Какие-то еретические мнения ...

Я бы не рекомендовал C++ для написания сложных графических интерфейсов Windows - комбинации языка / библиотеки, такие как C# или Delphi, намного более производительны. Если вы хотите заняться программированием на C++, я бы посоветовал использовать его для написания какого-нибудь многопоточного сервера - для начала подойдет простой веб-сервер.

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

И прежде чем кто-либо начнет безумно отрицать, позвольте мне сказать, что я программист на C++ со стажем более 20 лет и действительно люблю этот язык.

"Programming Windows 5th Edition" Чарльза Петцольда - это Библия программирования для Windows.

http://www.charlespetzold.com/pw5/

Можно ли было бы писать графические интерфейсы на VC++ с использованием классов Microsoft Foundation или MFC? Именно так я писал и писал графические интерфейсы на VC++ в прошлом.

За эти годы было написано много книг о MFC. Я уверен, что любой из них подойдет. В литературе можно найти эталонный ATL, который представляет собой итерацию Microsoft на STL. MFC и ATL как бы объединились с годами, так что все, что ATL, также применимо к приложениям MFC в наши дни.

Удачи и приятного времяпровождения!

Поскольку вы говорите, что занимаетесь программированием графического интерфейса на C# около 3 лет, я предполагаю, что это означает Windows Forms. Один из способов окунуться в воду - это помнить, что WinForms на самом деле всего лишь объектно-ориентированная оболочка user32 . Так что загрузите Reflector и посмотрите, как реализованы некоторые элементы управления. Вы увидите, что эти странные сообщения вроде WM_PAINT и WM_KEYDOWN перекачиваются в WndProc различные элементы управления Windows. В простом старом программировании Win32 или MFC происходит то же самое. Это позволит вам медленно очистить слои лука; вы также лучше почувствуете, как работает Windows Forms. Оттуда я бы порекомендовал взять Programming Windows от Petzold; он старый, но нативные API в Windows немного. Повеселись!

Ах, я знаю, что вы чувствуете, старый программист интерпретируемых языков, который хочет познать магию компилируемого программирования. Что ж, я не могу найти учебник, который использовал для изучения программирования Windows, но просто знаю, что есть хорошие учебники по Win32, так что вы пока не тратите свое время на покупку книги. Я нашел это: http://www.relisoft.com/win32/index.htm Самый лучший учебник, поверьте мне.