| Tartalomjegyzék | 3 |
| Útmutató a könyv használatához | 11 |
| Bevezetés | 15 |
| A Visual C++ bemutatása | 17 |
| A Visual C++ telepítése | 18 |
| A Visual C++ fejlesztőkörnyezet | 20 |
| Használt varázslóink: | 21 |
| Az alkalmazásvarázsló | 21 |
| Az osztályvarázsló | 22 |
| A Workspace ablak | 25 |
| További ablakok a képernyőn | 26 |
| Az Output ablak | 27 |
| Eszköztárak | 27 |
| A súgó használata | 27 |
| Nyomkövetés | 30 |
| Kérdések | 33 |
| Összefoglalás | 33 |
| Üzenetkezelés | 35 |
| A Visual C++ alkalmazás szerkezete | 35 |
| Esemény, üzenet, kezelő metódus | 39 |
| Az események feldolgozása | 41 |
| Üzenetek a szálak üzenetsorában | 41 |
| Az üzenetek feldolgozása | 42 |
| Az üzenetkezelő ciklus függvényei | 43 |
| Aszinkron - szinkron üzenetek | 44 |
| Az üzenettérkép (Message_Map) | 45 |
| Üzenet kategóriák kezelése | 47 |
| Ablaküzenetek kezelése | 47 |
| Vezérlést bejelentő üzenetek kezelése | 48 |
| Parancsüzenetek kezelése | 49 |
| Üzenetek csoportos kezelése | 50 |
| A fejlesztő által definiált üzenetek kezelése | 51 |
| Regisztrált üzenetek | 51 |
| Külső üzenetek | 52 |
| Billentyűüzenetek | 52 |
| Egérüzenetek | 53 |
| A Spy++ | 54 |
| Kérdések | 56 |
| Összefoglalás | 56 |
| Párbeszédablakok | 59 |
| Erőforrások | 59 |
| Vezérlők | 60 |
| A párbeszédfelület szerkesztése | 64 |
| Párbeszédablak | 64 |
| Előredefiniált párbeszédablakok | 65 |
| Szerkesztett párbeszédablak | 66 |
| Változó hozzárendelése a vezérlőhöz | 67 |
| Hozzárendelés az osztályvarázsló segítségével | 67 |
| Kapcsolattartás a vezérlő és a tagváltó között | 69 |
| Vezérlők kezelésének lehetőségei | 71 |
| Ideiglenes mutatón keresztül | 71 |
| Objektum segítségével, üzenetkezelő metódusok a szülőablakban | 71 |
| Származtatással, új üzenetkezelő metódusok a vezérlő osztályban | 72 |
| A párbeszédablak életciklusa | 73 |
| A párbeszédalapú alkalmazás szerkezete | 75 |
| Új szerkesztett párbeszédablak | 76 |
| Activex vezérlő csatolása | 77 |
| A file nyilvántartásba vétele | 78 |
| Regisztrált vezérlők tesztelése | 79 |
| ActiveX vezérlő használata az alkalmazásban | 80 |
| Kérdések | 83 |
| Összefoglalás | 84 |
| Az MFC felépítése | 85 |
| Az MFC áttekintése | 85 |
| API: Application Programming Interface | 86 |
| Az MFC mint osztálykönyvtár | 86 |
| Az MFC mint framework | 87 |
| Információk az MFC osztályokról | 87 |
| A CObject osztály | 90 |
| A CObject főbb utódosztályai | 91 |
| Az alkalmazások főbb alaposztályai | 92 |
| A kivételezést támogató osztályok | 92 |
| A fájlkezelést támogató osztályok | 92 |
| A konténerosztályok | 93 |
| Az alkalmazásszerkezeti osztályok | 94 |
| A CCmdTarget osztály | 95 |
| A CWinThread osztály | 95 |
| Többszálú alkalmazások | 95 |
| A megjelenítést támogató osztályok | 98 |
| Az ablakok | 99 |
| A CWnd osztály | 100 |
| Az időzítő | 101 |
| CWnd és HWND kapcsolata | 102 |
| A CFrameWnd osztály | 104 |
| A CView osztály | 105 |
| Drag & drop technika | 106 |
| A CDialog osztály és utódai | 106 |
| A vezérlők a CWnd utódai | 109 |
| Néhány további vezérlőosztály | 109 |
| Vezérlők futásidejű létrehozása | 113 |
| Az egyszerű érték típusok kategória osztályai | 113 |
| A CString osztály | 113 |
| A CTime és a CTimeSpan osztály | 116 |
| Az osztályok tárolása | 117 |
| Globális függvények | 117 |
| Kérdések | 119 |
| Összefoglalás | 120 |
| Megjelenítés a grafikus felületen | 121 |
| A DC | 121 |
| A CDC objektumai | 122 |
| Az objektumok kiválasztása a DC-be | 123 |
| Hogyan férjünk hozzá a DC-hez? | 124 |
| A CDC osztály utódosztályai | 124 |
| A GDI (Graphics Device Interface) | 125 |
| A GDI objektumok | 126 |
| CPen | 126 |
| CBrush | 127 |
| CBitmap | 127 |
| CFont | 128 |
| CRgn | 129 |
| A színek | 130 |
| Grafikus objektum törlése | 131 |
| Rajzolás a képernyőre | 132 |
| A WM_PAINT üzenet és kezelése | 132 |
| A CDC osztály tagfüggvényei | 133 |
| Logikai és fizikai megjelenítés | 135 |
| Az ikonok | 138 |
| Az egérkurzor a képernyőn | 139 |
| Tetszőleges alakú kurzor | 139 |
| Általunk rajzolt kurzor | 140 |
| Animált kurzor | 142 |
| A kurzort kezelő függvények | 144 |
| Az egér mozgásának korlátozása | 145 |
| Kérdések | 145 |
| Összefoglalás | 146 |
| SDI, MDI alkalmazások | 149 |
| A Document/View architektúra | 150 |
| SDI, MDI alkalmazások | 150 |
| A Document/View architektúra osztályai | 152 |
| Az alkalmazásosztály | 152 |
| A dokumentumsablon-osztály | 152 |
| A keretablakosztály | 153 |
| A nézetosztály | 154 |
| A dokumentumosztály | 155 |
| Az SDI alkalmazássablon osztályai | 157 |
| Az MDI alkalmazássablon osztályai | 159 |
| Szerializáció | 161 |
| Az alkalmazáshoz rendelt fájlkiterjesztés | 161 |
| Szerializáció | 163 |
| Szerializáció a dokumentumosztályban | 164 |
| Új dokumentum parancs (New document) | 165 |
| Létező dokumentum nyitása (Open) | 165 |
| A dokumentum mentése vagy bezárása | 166 |
| Szerializáció különböző típusú adatok esetén | 167 |
| Szerializáció osztályok készítése | 167 |
| A keretablak interfészei | 170 |
| Menükezelés | 170 |
| Menüpontok szerkesztése | 170 |
| Menüparancsok kezelése | 172 |
| A menüpont megjelenése | 174 |
| Gyorsmenü | 174 |
| Menü a párbeszédablakban | 175 |
| Dummy menü | 176 |
| Gyorsgombok | 176 |
| Az eszköztár | 177 |
| Az eszköztár szerkesztése | 177 |
| Több eszköztár az alkalmazásban | 178 |
| Az állapotsor | 180 |
| Állapotsor a kódban | 180 |
| Új ablak az állapotsorban | 181 |
| Kiírás az állapotsorba | 182 |
| További elemek | 183 |
| Több ablak az alkalmazásban | 184 |
| Egy nézet, több ablak | 184 |
| Egy dokumentum, több nézet | 186 |
| Osztott nézetek | 187 |
| Önálló nézetek | 191 |
| Kérdések | 192 |
| Összefoglalás | 193 |
| A Registry használata | 197 |
| A regisztrációs adatbázis szerkezete | 198 |
| A regisztrációs adatbázis módosítása | 200 |
| Módosítás szerkesztővel | 200 |
| Módosítás telepítéskor | 201 |
| A Registry módosítása az alkalmazásból | 202 |
| Adatok írása a regisztrybe | 203 |
| Dokumentumok megnyitása duplakattintásra | 204 |
| Az utolsó használt dokumentum nyitása indításkor | 204 |
| Kérdések | 205 |
| Összefoglalás | 205 |
| Gyakorlatok | |
| Bevezető feladat | 211 |
| Hello alkalmazás | 211 |
| Az alkalmazás szerkezete | 221 |
| Kézzel írt minimális alkalmazás | 221 |
| Párbeszédalapú alkalmazások | 233 |
| Gyümölcsárazó automata | 234 |
| Terv | 234 |
| A párbeszédfelület és kezelése | 236 |
| Új párbeszédablakok | 246 |
| Második megoldás: mindez vezérlőobjektum változókkal | 252 |
| Feladatok: | 256 |
| Köszöntés hanggal | 256 |
| Számológép | 257 |
| Fényképtár | 257 |
| Tili-toli játék | 257 |
| Telefon | 257 |
| Nyomógomb képpel | 257 |
| Szókirakó játék | 258 |
| Memória játék (memory) | 258 |
| MFC osztályok | 258 |
| Amőba játék | 265 |
| Terv | 265 |
| Előkészítő lépések | 266 |
| Kódolás | 266 |
| Egér használata | 268 |
| Ablakok a Spy++-ban | 273 |
| Feladatok | 275 |
| Időmérés az Amőba feladatban | 275 |
| Kapj el gomb! | 276 |
| Elégedett Ön a fizetésével? | 276 |
| Szerencsekerék | 276 |
| Fuss! | 276 |
| DragList | 277 |
| Feladatütemező | 277 |
| Többfülű alkalmazás | 278 |
| Varázsló | 278 |
| Fényújság | 278 |
| Videólejátszó | 278 |
| Ötletek a feladatok megoldásához: | 278 |
| Grafikus felület kezelése | 289 |
| Rajz készítése | 289 |
| Rajzoljunk ablakunkba egy ábrát! | 289 |
| Tároljuk a rajzot metafájlban! | 291 |
| Metafájlt kirajzoló alkalmazás! | 294 |
| Rajzolás egérrel | 295 |
| Terv | 296 |
| Rajzolás pontokkal | 296 |
| Rajzolás vonalakkal | 297 |
| Tároljuk a rajzot a memóriában! | 300 |
| Módosítsuk az egérkurzort! | 304 |
| A toll és az ecset beállítása a párbeszédfelületen | 309 |
| A terv | 309 |
| A rajz | 309 |
| A toll és az ecset tulajdonságlapja | 313 |
| A toll beállításai | 314 |
| Az ecset tulajdonságlapja | 324 |
| Az egér elkapása, téglalapba zárása | 332 |
| Feladatok: | 334 |
| Animált kurzor | 334 |
| Pattogó pöttyös labda | 334 |
| Pöttyös labda görbült térben | 335 |
| Tetszőleges alakú gomb | 335 |
| Besüllyedő nyomógomb | 335 |
| Számoló ovisok | 335 |
| Kapj el! | 335 |
| Figyellek! | 336 |
| Kávé | 336 |
| Karácsonyi képeslap | 336 |
| Ötletek a feladatok megoldásához: | 336 |
| SDI, MDI alkalmazások | 353 |
| 'Mindenütt körök' feladat | 353 |
| A kör alkalmazás standard tagváltozókkal | 355 |
| Tároljuk egy kör adatait egy CCircle osztályban! | 361 |
| Több kör tárolása | 365 |
| Mindenütt alakzatok | 369 |
| A kertablak interfészei | 374 |
| Menüpontok | 375 |
| Az eszköztár | 376 |
| Gyorsgombok | 384 |
| Az állapotsor | 386 |
| Egy dokumentum, több nézet | 389 |
| Egy nézet több ablak | 393 |
| Legyen több megosztott nézet | 398 |
| Szövegszerkesztő alkalmazás | 401 |
| Feladatok | 401 |
| Arc | 401 |
| SDI pulzáló kör | 401 |
| Képrajzolás | 401 |
| Kapj el! | 401 |
| Rajz gyorsmenüvel | 402 |
| Eseménykezelés | 402 |
| Egy dokumentum, több önálló nézettel | 402 |
| Mindenütt körök több nézettel | 403 |
| Ötletek a feladatok megvalósításához | 403 |
| A registry használata | 417 |
| Beállítások tárolása a registryben | 417 |
| Feladatok | 420 |
| Az utoljára használt dokumentum beolvasása indításkor | 420 |
| Készítsünk ini fájlt az alkalmazásunkhoz! | 420 |
| Tanulmányozzuk a registry bejegyzéseket | 420 |
| Irodalomjegyzék | 421 |
| Tárgymutató | 425 |