Pytanie Windows GUI Programowanie w C ++


Chcę się nauczyć programowania w języku C ++ za pomocą Visual Studio 2008. Nie jestem pewien, od czego zacząć. Nauczyłem się C ++ w liceum, ale nie GUI. Robiłem C # od około 3 lat i właśnie tak "nauczyłem się" programowania GUI. Teraz chcę nauczyć się pisać GUI bez korzystania z platformy .NET, więc od czego zacząć?


9
2018-02-28 00:24


pochodzenie




Odpowiedzi:


MFC jest już prawie nieaktualne. Polecam zamiast tego używać WTL.

Nie jest też dobrym pomysłem, aby rozpocząć programowanie dla GUI w C ++, gdy istnieje tak wiele dobrych frameworków, takich jak platforma cross-platform QT.


7
2018-02-28 00:57





"Programowanie Windows 5th Edition" Charlesa Petzolda to Biblia dla programowania Windows.

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


8
2018-02-28 00:30



Biblia! Czytanie książek Petzolda nie jest koniecznością, aby rozwijać się bezpośrednio za pomocą interfejsu Win32 API (który ma swoje zalety i wady - wolę używać MFC), ale także zrozumieć, jak działa system Windows pod maską. - Joe Pineda


Ponieważ mówisz, że programujesz C # GUI przez około 3 lata, zakładam, że to znaczy Windows Forms. Jednym ze sposobów zanurzenia palca w wodzie jest pamiętanie, że WinForms to tak naprawdę obiektowa orientacja user32. Więc załaduj Reflector i spójrz na sposób implementacji niektórych elementów sterujących. Zobaczysz, że te dziwne wiadomości, takie jak WM_PAINT i WM_KEYDOWN są pompowane do WndProc różnych kontrolek systemu Windows. W zwykłym starym programowaniu Win32 lub MFC to samo dzieje się nadal. Pozwoli ci to powoli oderwać warstwy cebuli; zyskasz lepszy wgląd w działanie Windows Forms. Stamtąd polecam odbiór Programowanie systemu Windows Petzold; jest stary, ale natywne interfejsy API w systemie Windows nie poruszają się że dużo. Baw się dobrze!


8
2018-02-28 00:31





Niektóre heretyckie opinie ...

Nie polecałbym C ++ do pisania złożonych graficznych interfejsów Windows - kombinacje językowe / biblioteki takie jak C # czy Delphi są o wiele bardziej wydajne. Jeśli chcesz dostać się do programowania w C ++, proponuję użyć go do napisania wielowątkowego serwera - prosty serwer WWW zrobi na początek.

A jeśli naprawdę chcesz zrozumieć podstawowe interfejsy API systemu Windows, myślę, że jest coś, co można powiedzieć o napisaniu prostej aplikacji (jak, powiedzmy, uproszczonej wersji notebooka) w C (nie C ++). Będziesz chciał to zrobić tylko raz, ale wiele się nauczysz.

I zanim ktokolwiek zacznie szaleńczo głosować, pozwól mi powiedzieć, że jestem programistą C ++, który ma ponad 20 lat i naprawdę kocham ten język.


5
2018-02-28 00:47



Nie, całkowicie się zgadzam. Warto dla "OH - tak to działa" i dla "OH - więc to jest bobaterka" i dla "OH - więc to nie jest to, dlaczego tego nie robimy" w ten sposób już. " =) - Nicholas Piasecki


Czy byłoby dobrze napisać GUI w VC ++ przy użyciu Microsoft Foundation Classes lub MFC? Tak właśnie pisałem w przeszłości interfejsy VC ++.

Od lat powstało wiele książek o MFC. Jestem pewien, że każdy z nich będzie ładnie wyglądał. Możesz znaleźć w literaturze referencyjny ATL, który jest iteracją Microsoft na STL. Typy MFC i ATL połączyły się na przestrzeni lat, więc dowolna ATL ma obecnie zastosowanie do aplikacji MFC.

Powodzenia i miłej zabawy!


2
2018-02-28 00:34



Myślałem o uczeniu się MFC - Kredns
IMHO, to zdecydowanie droga. - Glenn


Wiem, jak się czujesz, stary programista języków, który chce poznać magię kryjącą się za programowaniem. Cóż, nie mogę znaleźć samouczka, którego nauczyłem się programowania systemu Windows, ale po prostu wiem, że istnieją dobre samouczki dotyczące Win32, więc nie tracisz czasu na kupowanie książek. Znalazłem to: http://www.relisoft.com/win32/index.htm Najlepszy tutorial dookoła, zaufaj mi.


2
2018-02-28 01:47





Od teraz (Windows 8), WinRT, zupełnie nowy interfejs API został przedstawiony publiczności przez Microsoft i jestem bardzo podekscytowany. Nigdy nie robiłem programowania MFC, ale widziałem kilka próbek kodu i wyglądają dziwnie w stylu lat 90-tych (współczesny styl C jest często lepszy!). Tak więc, bez uruchamiania bezpośrednio z MFC, myślę, że zacznę od WinRT

:)


0
2017-08-21 08:56