K-INFO
HU
EN
Login

Windows Native Programming

Windows native programozás
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Subject name (Hungarian, English)
Windows native programozás
Windows Native Programming
Subject code BMEVIHVAV09
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 0 0 2
type (linked/independent) autonomous course
Assessment type félévközi érdemjegy
Credits 2
Subject coordinator
DR. Csurgai-Horváth László
position: egyetemi docens
Responsible department
Szélessávú Hírközlés és Villamosságtan Tanszék
Faculty Villamosmérnöki és Informatikai Kar
Subject website http://hvt.bme.hu/~csurgai/Bsc/bsc.htm
Primary curriculum type
Direct prerequisites – Strong prerequisite none
Direct prerequisites – Weak prerequisite none
Direct prerequisites – Parallel prerequisite none
Direct prerequisites – Milestone prerequisite none
Direct prerequisites – Exclusion none

Objectives

Programme

- Windows basics and development systems for programmers.

- GUI, the consistent user interface, multitasking, memory handling, message-based operation.

- A simple Windows API program. Multi-window applications.

- Text handling, GDI, the handler, the scrollbar.

- Graphics: lines, areas, the mapping mode, regions and path, bitmap, metafile, fonts.

- Keyboard and mouse.

- The Windows timer.

- The child window, buttons, scrollbar, edit-box, list-box.

- Resources: icon, cursor, bitmap, menu, accelerator, modal and modeless dialogs, message box, common dialog boxes.

- Dynamic Link Library (DLL).

-The WinRT (Windows Runtime Library) and UWP (Universal Windows Platform). Software tools for driver development.

1st block: Windows basics, the different versions. Advantages and disadvantages. C/C++ development systems, programming tools. The graphical user interface. Forms of multitasking and memory management. Skeleton of a simple API-based Windows program. Messages.

 2nd block: Structure of a simple Windows program. Comparison with the version of console application. Main code parts, new data types and naming conventions. Handling text, screen output. Using the GDI (Graphics Device Interface). The handle. A simple program with text output and scrollbar.

 3rd block: Graphics: lines, areas, rectangles, path, bitmaps, metafiles, fonts. The mapping mode. The structure of a program with graphics.

 4th block: Keyboard and mouse under Windows. Specific messages. Character sets, fonts, international characters. ANSI and OEM types. A program that handles keyboard and mouse.

 5th block: The Windows timer. Basics, settings and usage. Example on how to use timers.

6th block: The child-window. Buttons, scrollbars, edit-box, list-box. Child-window types, messages and handling of them.

7th block: Resources: icon, cursor, bitmap. Resource file and resource compiler. Sample program with resources.

8th block: Menus and keyboard accelerators. Resource file for creating menus. Menu types: system, main, popup, floating popup. The resource editor.

9th block: Modal and non-modal dialog boxes. Handling dialog boxes in Windows programs. The message box and common dialog boxes.

10th block: The DLL: development and applications. DLL and LIB file. Writing a sample DLL and calling internal functions. Team work in complex projects.

11th block: The Windows Runtime Library and the Universal Windows Platform: platform-free development.  Win32 API improvement.

12th block: Mid-semester test

13th block: Metro-style under Windows 10.

14th block: 14.      Hardware support under Windows: device drivers. Development tools, the Windows Driver Kit and an example program.

Microsoft Windows is one of the best known operating systems for PCs. Writing applications for this system requires special programming knowledge, supported by different programming languages and platforms. This subject introduces to native mode programming for Microsoft Windows using the Win32 API (Application Programming Interface) and offers to extend the theoretical and practical knowledge of the students in visualizing, data processing, data communications, etc. The subject provides also the basics of WinRT (Windows Runtime Library) that is supported with Windows 8, and the later UWP (Universal Windows Platform) that has several new functionalities similar to Win32 API but using C++ language. An overview is also gives basic skills in driver development the earlier DDK (Windows Driver Development Kit) and the actual WDK (Windows Driver Kit).

Learning outcomes

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

Knowledge

No learning outcomes recorded.

Skills

No learning outcomes recorded.

Attitudes

No learning outcomes recorded.

Autonomy and responsibility

No learning outcomes recorded.

Oktatási módszertan

Weekly 2 hours laboratory practice. Participation is compulsory.

Tanulástámogató anyagok

Online források
Charles Petzold: Programming Windows; Microsoft Press, 1998; ISBN 1-57231-995-X;  ; MSDN online: https://msdn.microsoft.com/library; http://www.hvt.bme.hu/~csurgai/Bsc/WinProg.pdf

Recommended preliminary knowledge for completing the subject

Knowledge type competencies
(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 programming language
Skill type competencies
(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
Recommended (non-compulsory) preliminary competencies
(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 programming language
General rules
Requirements: During the term:   To obtain the mid-semester mark a mid-semester test with at least the mark “sufficient” and the completion of the homework task is required. The homework: development of a simple Windows application. Different tasks can be selected. Additional possibilities: An opportunity of a supplementary mid-semester test is provided in case of an unsuccessful mid-semester test in the term period. During the repeat period one additional supplementary mid-semester test can be written.
Assessment methods
In-term assessments

No detailed assessments provided.

Weight of in-term assessments

No weights provided.

Exam-period assessments

No detailed assessments provided.

Weight of exam elements

No weights provided.

Grade calculation

No grade thresholds provided.

Attendance requirements

No attendance requirements provided.

Rules for retake and resubmission

Not provided.

Short description

Not provided.

Detailed description

Not provided.

Recommended courses
Basics of Programming 1. (one of VIEEA100/VIEEAA00/VIHIA106/VIHIAA01)
Workload to complete the subject

No workload breakdown provided.

Validity of subject requirements
Requirements valid from:
Requirements valid until:
Curriculum placement

No curriculum placements recorded for this subject version.