K-INFO
HU
EN
Belépés

Windows native programozás

Windows Native Programming
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Tantárgy neve (magyarul, angolul)
Windows native programozás
Windows Native Programming
Tantárgykód BMEVIHVAV09
Tantárgyjelleg
Képzési szint
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 0 0 2
jelleg (kapcsolt/önálló) önálló
Tanulmányi teljesítmény/értékelés típusa félévközi érdemjegy
Tantárgy kreditértéke 2
Tantárgyfelelős
DR. Csurgai-Horváth László
beosztás: egyetemi docens
Tantárgyat gondozó oktatási szervezeti egység
Szélessávú Hírközlés és Villamosságtan Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala http://hvt.bme.hu/~csurgai/Mswin/mswin.htm
Tantárgy elsődleges mintatantervi jellege
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

Windows alapfogalmak és programozói fejlesztőrendszerek.
GUI, az egységes felhasználói felület, multitasking, memóriakezelés, üzenet alapú működés.
Egy egyszerű Windows program felépítése API használatával. Több ablakos applikációk.
Szövegek kezelése, GDI, handler fogalma, scrollbar.
Grafikai elemek: vonalak, felületek, a mapping mode fogalma, régiók és útvonalak, bitmap, metafile, betűtípusok.
A billentyűzet és az egér kezelése.
A Windows timer.
A child window fogalma, nyomógombok, scrollbar, edit-box, list-box használata.
Erőforrások: ikon, cursor, bitmap, menük és gyorsítógombok, modális és nem-modális dialógusablakok, message box-ok, közös dialógusablakok.
Dynamic Link Library (DLL).
A WinRT (Windows Runtime Library) és az UWP (Universal Windows Platform).
A driverfejlesztés software eszközei.
A fentiek mérnöki alkalmazásokon keresztül történő bemutatása.

Heti bontásban:

1.hét: Windows alapfogalmak, a Windows kialakulása, különféle verziók. Programozói fejlesztőrendszerek. A grafikus felhasználói felület alapfilozófiája, felhasználói interface és  üzenetvezérelt működés. Memóriakezelés és multitasking. Egy egyszerű Windows API program felépítése. A kód fő részei. Típusok, elnevezési konvenciók, handlerek.

2.hét: Szöveges információ kezelése, képernyő output. A GDI (Graphics Device Interface) használata. Egy szöveges outputtal rendelkező program megírása, kiegészítése scrollbar használattal. Grafikai elemek: vonalak, felületek, régiók, útvonalak, színek kezelése. Egy konkrét alkalmazás: függvény ábrázolása, illetve mérési adatsor beolvasása fileból és annak megjelenítése.

3.hét: A mapping mode fogalma, használata. Egy grafikus outputtal rendelkező program felépítése. Logikai és eszközkoordináták: példaprogram nagyméretű ábra átméretezésére és megjelenítésére. A Windows API által támogatott képformátumok. Képek létrehozása, használata; beolvasás és megjelenítés fileból. Nem konvencionális ablakformák.

4.hét: Beviteli eszközök: a billentyűzet és az egér kezelése. Karakterkészletek, betűtípusok, nemzetközi karakterek. A Windows API használata ábrák és felirataik megjelenítésében.

5.hét: Időzítés Windows programokban. Az időzítő működésének alapja, beállítása, használhatósági korlátai. Példaprogram a timer használatával: változó adatok megjelenítése szöveges és grafikus formában.

6.hét: A felhasználói felület javítása a child-window segítségével. Nyomógombok fajtái, görgetősáv, edit-box, list-box használata és ezek különféle stílusai. Egy összetett felhasználói felületű program elkészítése.

7.hét: Az erőforrások használata, a resource editor működése. Resource file és resource compiler. Alkalmazási példa: erőforrások használata a program grafikus elemeinek és adattömbjeinek tárolására.

8.hét: Menük és típusaik: system, main, popup, floating popup. A resource editor használata a menük létrehozásához. Menühasználat ábrák egyedi ablakokban történő megjelenítésére.

9.hét: Modális és nem-modális dialógusablakok. A dialógusablakok kezelése a programban. Message box-ok és a common dialog box library használata. Példaprogram a dialógusablakok használatára: paraméterbeállítás és átadás.

10.hét: A DLL-ek felépítése, használata és alkalmazási lehetőségei. Programozási gyakorlat: egy DLL megírása és hívása egy alkalmazásból. Team munka és feladatmegosztás nagyobb projektek esetén.

11.A Windows Runtime Library és a Universal Windows Platform: platformfüggetlen programfejlesztés. Áttekintés: a Win32 API továbbfejlesztése.

12.hét: Nagy ZH megírása.

13.Egy Metro-stílusú applikáció elkészítése Windows 10 platformon.

14.Hardware eszközök támogatása Windows alatt: eszközmeghajtók. Fejlesztőeszközök ismertetése; a Windows Driver Kit, egy példaprogram bemutatása.

 

 

Jelenleg az egyik legelterjedtebb személyi számítógépes operációs rendszer a Microsoft Windows. Az alatta futó applikációk megírása speciális programozói ismereteket igényel, melyhez számos fejlesztői eszköz áll rendelkezésre különféle programozási nyelveken és platformokon. Ennek a tantárgynak az elsődleges célkitűzése, hogy a megismertesse a Windows native módú, Win32 API (Application Programming Interface) használatára épülő programozást és a megszerzett ismereteket konkrét példákon keresztül elmélyítse (megjelenítés, adatfeldolgozás, kommunikáció perifériákkal, stb.). A tantárgy ismerteti továbbá a Windows 8-tól bevezetésre került WinRT (Windows Runtime Library), majd UWP (Universal Windows Platform) alapjait is, amely C++ nyelven számos újítást bevezetve biztosít a Win32 API-hoz hasonló jellegű funkcionalitást. Kitekintés jelleggel foglalkozunk az eszközmeghajtók fejlesztési kérdéseivel is, így a korábbi DDK (Windows Driver Development Kit) illetve a jelenlegi WDK (Windows Driver Kit) alkalmazásával.

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

A tantárgyat számítógépteremben oktatjuk ahol minden egyes hallgató az oktató instrukcióinak megfelelően, önállóan végzi el a kitűzött feladatokat. Az órák elméleti bevezetőből és hozzá kapcsolódó programozási gyakorlati feladatokból állnak.

Tanulástámogató anyagok

Online források
Az MSDN online dokumentációi: https://msdn.microsoft.com/;  ; Charles Petzold: Programming; Windows; Microsoft Press, 1998; ISBN 1-57231-995-X; Sipos Mariann: A Visual C++ és az; MFC; ISBN: 963640979; http://www.hvt.bme.hu/~csurgai/Bsc/WinProg.pdf

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
C programozási nyelv ismerete
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
C programozási nyelv ismerete
Általános szabályok
Követelmények: a.    A szorgalmi időszakban: A hallgatók a tárgy sikeres elvégzése esetén félévi jegyet kapnak. A félévi jegy megszerzésének a feltételei: - Egy nagy zárthelyi legalább elégségesre történő megírása a tanóra keretében. A ZH egy konkrét programozási feladat számítógépen történő elvégzése. - Házi feladat elkészítése, beadása és elfogadása a szorgalmi időszak végéig. A házi feladat egy az oktatóval egyeztetett C vagy C++ program elkészítése Windows API használatával. A házi feladat osztályzása ötfokozatú skálán, érdemjegyekkel történik. - A félévi jegy a zárthelyire és a házi feladatra kapott jegyek átlaga, a hagyományos kerekítési szabályok szerint. b.    A vizsgaidőszakban: - c.    Elővizsga: - Pótlási lehetőségek: Sikertelen zárthelyi a szorgalmi időszakban a pótzárthelyin pótolható. A sikertelen (pót)zárthelyi a pótlási héten különeljárási díj ellenében egy további alkalommal pótolható. A házi feladat különeljárási díj ellenében a pótlási héten pótolható.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás

Nincs megadva.

Ajánlott tantárgyak
Ajánlott a programozás alapjai 1. (VIEEA100/VIEEAA00/VIHIA106/VIHIAA01 valamelyike). A tárgyat nem vehetik fel azok a hallgatók, akik teljesítették a tárgy előd tantárgyát (VIMH9143 vagy VIHVJV43)
A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
Tantárgykövetelmények hatályosságának vége:
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.