| Naziv predmeta | Napredno Windows programiranje | 
| Detalji | Kod VSITE131 Skr. NWP ECTS 5 Godina 3 Semester Ljetni semestar Vrsta izborni Razina HKO 6 Preddiplomski studij E-Learning  0%   | 
| Aktivnosti | IT zg - Ljet 25/26 ECTS Jedinice Sati Svega P 1 15 2 30
  A 0 15 1 0
  L 1 12 1 30
  S 0 0 0 0
  KA 0 0 0 0
  KP 0 1 1 0
  PR 0 1 6 0
  IP 0 0 0 0
  IU 0 1 2 0
  SU 3 1 90 90
   | 
| Nastavnici | Nositelji:  Nenad Čaklović, pred. | 
| Preduvjeti | Nema | 
| Sadržaj | Win32 arhitektura: Windows operacijski sustav, DLL-ovi, Win32 API, Kernel, Win32 upravljanje memorijom. Win32 programiranje: Win32 programski tok, SDK windows programi, windows verzije, MFC. Dinamički vezane biblioteke: razlika dinamičkog i statičkog povezivanja, eksplicitno i implicitno povezivanje. Niti (threads): Win32 procesi i niti, enkapsulacija niti, nitna sinkronizacija, sigurnost niti. Win 32 procesi: kreiranje, sinkronizacija, terminiranje procesa. Standardne windows kontrole: Win32 standardne kotrole, MFC klase standardnih kontrola. Windows sistemski registar, Win32 registry API. Napredna Document/View arhitektura. Document obrasci, višestruke document i view klase. Napredni izbornici i alatne trake: dinamički izbornici i alatne trake. Napredni GDI: transformacija koordinata, skroliranje, ispis, metafiles, bitmape. 
 | 
| Ciljevi učenja | Opća. 
Programiranje upravljano događajima. Višejezično programiranje, Unicode. GUI. MDI aplikacije. Pristup bazama podataka. 
Posebna. 
Win32: kreiranje aplikacija; komunikacija prema OS-u i drugim aplikacijama; resursi; GDI. 
MFC: osnove rada i korištenja; generatori koda, podrška u MS Visual Studio; podrška za ispis 
 | 
| Ishodi učenja | 1. Razumjeti i objasniti principe rada Windows OS-a i platforme Win32; razliku između konzolne i Win32 aplikacije; način rada i komunikaciju aplikacija pod Windowsima; principe programiranja upravljanog događajima (event driven) u odnosu na proceduralno programiranje. 2. Koristiti ključne dijelove Win32 platforme sa i bez generatora koda; uključujući osnovne module za kreiranje i kontrolu prozora i dijaloga te napredne module za GUI, ispis ili ODBC pristup bazama podataka. 3. Samostalno dizajnirati, implementirati i testirati manje do srednje Win32 projekte - uključujući definiciju izgleda i ponašanja aplikacije na više jezika 
 | 
| Sposobnosti | Kolegij pruža specijalistička znanja s područja programiranja kao nadogradnju jezgre računarstva i osposobljava polaznika za generiranje složenih korisničkih programa za operacijski sustav Windows 
 | 
| Preporučena literatura | 1. Richter, Jeffrey: «Programming Application for Microsoft Windows»,  Microsoft Press, 1999.2. Petzold, Charles: «Programming Windows», Fifth edition, Microsoft Press, 1999.  3. Prosise, Jeff: «Programming Windows with MFC», Second edition, Microsoft Press, 1999.  4. Kruglinski, David J; Wingo, Scot; Sheperd, George: «Programming Microsoft Visual C++», Fifth edition, Microsoft Press, 1998. 
 | 
| Dodatna literatura |  | 
| predavanja (P) | - 1. UVOD
1.1. Glavni program			
1.2. Tipovi podataka			
 - 2. PROZORI
2.1. Klase prozora			
2.2. Kreiranje prozora			
2.3. Procedura prozora			
2.4. Poruke, petlja poruka			
 - 3. RESURSI
3.1. Vrste resursa			
3.2. Datoteka sa resursima			
3.3. Kreiranje i učitavanje resursa: ikona, kursor, tekst, prečica, izbornik, novi tip			
 - 4. DIJALOZI
4.1. Procedura dijaloga			
4.2. Modalni dijalog			
4.3. Kontrole, upotreba kontrola			
4.4. Nemodalni dijalog			
4.5. Standardni dijalozi			
 - 5. SETOVI ZNAKOVA
5.1. Unicode			
5.2. Tip wchar_t, korištenje TCHAR-a			
 - 6. PORUKE SA ULAZNIH UREĐAJA
6.1. Tipkovnica			
6.2. Miš			
6.3. Mjerač vremena			
 - 7. GRAFIKA
7.1. Poruka WM_PAINT			
7.2. Device context, svojstva, spremanje			
7.3. Selektiranje objekata			
7.4. Grafički objekti: olovka, četka, font, regija			
7.5. Funkcije za crtanje: linija, područja, teksta 			
7.6. Načini punjenja, crtanja, preslikavanja			
 - 8. MFC BIBLIOTEKA
8.1. Povijesni razvoj			
8.2. Osnovne klase: CWnd, CWinApp			
8.3. Mapa poruka			
8.4. Čarobnjaci u VisualStudiu			
 - 9. DIJALOZI U MFC-U
9.1. Klasa CDialog			
9.2. Modalni i standardni dijalozi			
9.3. Klase CPropertyPage i CPropertySheet			
9.4. Kontrole, upotreba kontrola, DDX, DDV			
9.5. Poruka WM_NOTIFY			
 - 10. ARHITEKTURA DOKUMENT-POGLED
10.1. Osnove arhitekture			
10.2. Klase CDocument, CView; izvedene klase			
10.3. Predlošci, klasa CSingleDocTemplate			
10.4. MDI arhitektura, klasa CMultiDocTemplate			
 - 11. ŠTAMPANJE	
11.1. Podrška za štampanje u MFC-u 			
 - 12. DINAMIČKO KONFIGURIRANJE PROGRAMA
12.1. Registrar			
12.2. Konfiguracijska datoteka			
 - 13. PRISTUP BAZAMA PODATAKA
13.1. Pristup preko ODBC-a			
13.2. Klasa CDatabase, CRecordset			
13.3. Iteriranje, filtriranje, RFX			
 - Nije definirano
 - Nije definirano
 
  | 
| auditorne vježbe (A) | - 1. UVOD 1.1. Glavni program	 1.2. Tipovi podataka
 - 2. PROZORI 2.1. Klase prozora	 2.2. Kreiranje prozora	 2.3. Procedura prozora 2.4. Poruke, petlja poruka
 - 3. RESURSI 3.1. Vrste resursa	 3.2. Datoteka sa resursima	 3.3. Kreiranje i učitavanje resursa: ikona, kursor, tekst, prečica, izbornik, novi tip
 - 4. DIJALOZI 4.1. Procedura dijaloga	 4.2. Modalni dijalog	 4.3. Kontrole, upotreba kontrola	 4.4. Nemodalni dijalog	 4.5. Standardni dijalozi
 - 5. SETOVI ZNAKOVA 5.1. Unicode	 5.2. Tip wchar_t, korištenje TCHAR-a
 - 6. PORUKE SA ULAZNIH UREĐAJA 6.1. Tipkovnica	 6.2. Miš	 6.3. Mjerač vremena
 - 7. GRAFIKA 7.1. Poruka WM_PAINT	 7.2. Device context, svojstva, spremanje 7.3. Selektiranje objekata	 7.4. Grafički objekti: olovka, četka, font, regija	 7.5. Funkcije za crtanje: linija, područja, teksta 7.6. Načini punjenja, crtanja, preslikavanja
 - 8. MFC BIBLIOTEKA 8.1. Povijesni razvoj	 8.2. Osnovne klase: CWnd, CWinApp 8.3. Mapa poruka	 8.4. Čarobnjaci u VisualStudiu
 - 9. DIJALOZI U MFC-U 9.1. Klasa CDialog	 9.2. Modalni i standardni dijalozi	 9.3. Klase CPropertyPage i CPropertySheet	 9.4. Kontrole, upotreba kontrola, DDX, DDV	 9.5. Poruka WM_NOTIFY
 - 10. ARHITEKTURA DOKUMENT-POGLED 10.1. Osnove arhitekture	 10.2. Klase CDocument, CView; izvedene klase	 10.3. Predlošci, klasa CSingleDocTemplate 10.4. MDI arhitektura, klasa CMultiDocTemplate
 - 11. ŠTAMPANJE	 11.1. Podrška za štampanje u MFC-u
 - 12. DINAMIČKO KONFIGURIRANJE PROGRAMA 12.1. Registrar	 12.2. Konfiguracijska datoteka
 - 13. PRISTUP BAZAMA PODATAKA 13.1. Pristup preko ODBC-a	 13.2. Klasa CDatabase, CRecordset	 13.3. Iteriranje, filtriranje, RFX
 - Nije definirano
 - Nije definirano
 
  | 
| laboratorijske vježbe (L) | - minimalni Win32 program, kreiranje prozora, poruke
 - C++ klase za male Win32 aplikacije
 - dijalozi, proširenje biblioteke sa klasama za dijaloge
 - obrada poruka miša i tipkovnice, jednostavna igra sa vođenjem broda
 - osnove GDI-a, aplikacija za crtanje isprekidanih linija
 - Win32 aplikacija koja iscrtava šahovnicu; konfigurabilni broj i boja polja 
 - Win32 aplikacija koja iscrtava tablicu množenja; konfigurabilna veličina tablice i font
 - Win32 aplikacija koja iscrtava sinusoidu; konfigurabilni interval i legenda
 - Win32 aplikacija koja crta cvijet iscrtavajući uzastopne krugove u XOR načinu crtanja; konfigurabilni broj i boja krugova
 - Win32 aplikacija koja iscrtava bitovnu reprezentaciju teksta; konfigurabilni tekst i font
 - MFC dijalog aplikacija sa upravljanjem standardnim kontrolama
 - MFC MDI aplikacija sa više vrsta pogleda na dokument; 
 - MFC aplikacija koja pristupa bazi podataka preko ODBC-a sa podrškom za štampanje
 
  | 
| kolokvij - teorija (KP) | - Nema kolokvija.
 
  | 
| projekt (PR) | - Student mora specificirati, izraditi, dokumentirati, testirati i prezentirati Windows aplikaciju u jeziku C++ prema svom izboru.
 
  | 
| ispit - teorija (IU) | - Ispit se polaže preko projekta. Konačna ocjena se formira na osnovu ocjene laboratorijskih vježbi, ocjena stečenih tijekom nastave na osnovu kratkih testova te ocjene praktičnog rada. 
 
  | 
| samostalno učenje (SU) | - kolokviji, konzultacije, samostalno  učenje, samostalno rješavanje numeričkih zadataka, samostalni rad u laboratoriju
 
  |