Windows Native Programming

A tantárgy neve magyarul / Name of the subject in Hungarian: Windows native programozás

Last updated: 2020. január 7.

Budapest University of Technology and Economics
Faculty of Electrical Engineering and Informatics
Electrical Engineering
Software Engineering
Free Elective subject
Course ID Semester Assessment Credit Tantárgyfélév
VIHVAV09   0/0/2/f 2  
3. Course coordinator and department Dr. Csurgai-Horváth László,
Web page of the course
4. Instructors Dr. László Csurgai-Horváth, associate professor
5. Required knowledge

C programming language

6. Pre-requisites

Basics of Programming 1. (one of VIEEA100/VIEEAA00/VIHIA106/VIHIAA01)

7. Objectives, learning outcomes and obtained knowledge

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).

8. Synopsis

- 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.

9. Method of instruction

Weekly 2 hours laboratory practice.

Participation is compulsory.

10. Assessment

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.

11. Recaps 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.
12. Consultations Personal discussion with the lecturer.
13. References, textbooks and resources

Charles Petzold: Programming Windows

Microsoft Press, 1998

ISBN 1-57231-995-X


MSDN online:

14. Required learning hours and assignment
Mid-term preparations for lessons5
Preparation for test5
Homework 8
Study of written materials14
15. Syllabus prepared by Dr. László Csurgai-Horváth