Windows Native Programming
A tantárgy neve magyarul / Name of the subject in Hungarian: Windows native programozás
Last updated: 2020. január 7.
C programming language
Programming 1. (one of VIEEA100/VIEEAA00/VIHIA106/VIHIAA01)
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).
- Windows basics and development systems for
- 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,
- 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.
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
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
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.
Weekly 2 hours laboratory practice.
Participation is compulsory.
obtain the mid-semester mark a mid-semester test with at least the mark
“sufficient” and the completion of the homework task is required.
homework: development of a simple Windows application. Different tasks can be
Charles Petzold: Programming Windows
Microsoft Press, 1998
MSDN online: https://msdn.microsoft.com/library