CS360/CS580H GUI & Windows Programming Introduction
Course Outline Win32/Windows API & SDK Visual Studio 2013 MFC – C++ & MS Foundation Classes C# &.NET – concepts Windows Forms WPF - Windows Presentation Foundation (DirectX+XAML based) RTL included post-Vista WPF controls are OK in a WinForms app & vice- versa – This is a 2 nd API (based on.NET 2.0)
Win32 = Windows API Basic windows functions Messages from user/system – (mouse-click, close, etc.) Usable with C/C++ Programmer must do almost everything Used with the Windows SDK
WinAPI Programs WinMain – Primary entry point from OS – 3 parts Procedure definition Init Message processing loop WinProc – Performs actions to process messages
Windows Messages Mechanism for system/user event triggering Requires a "callback" mechanism – O/S calls your functions – Reverse of a "system call" Message processing loop in program – Tests for message types – Calls your handler functions Program is idle until an event
Windows Forms GUI part of.NET Framework Does not offer a paradigm comparable to Model–View–Controller of C++ with MFC Model–View–Controller Event driven
MFC A class library Contains portions of the Win32API Classes contain pre-written code to do things like: – Create/Open/close a window – Open a dialog box – Independent of user settings
MFC programs InitInstance – Primary entrty point _tWinMain WndProc
WPF (4.5 – Aug 2012 – may be the last version) 1 st release in 2005 Implements SOAP & non-MS web svc's tech's. DirectX vs. older GDI interface XAML (based on XML) Standalone apps Embedded objects on a website RTL included in all Windows post-XP Unifies – Rendering, typography, vector graphics, animation, fixed, adaptive & pre-rendered docs, events, bindings Poor response-time, not for low-power devices
.NET (3.0) stack.NET Apps.NET Tools CLR, Base Class Libraries, ASP.NET, ASO.NET, WinForms WPFCardSpace (InfoCard) Canceled! WF (Workflow) Windows
Deploying.NET Framework Apps Distinguish between the app and the Framework us/library/6hbb4k3e(v=vs.110).aspx us/library/6hbb4k3e(v=vs.110).aspx