CMPT 212 Introduction to MFC and Windows Programming. Spring 2007
|
|
- Gregory Weaver
- 5 years ago
- Views:
Transcription
1 CMPT 212 Introduction to MFC and Windows Programming Spring 2007
2 What is MFC? MFC: Microsoft Foundation Classes MFC is a framework built on top of standard windows C++ libraries Provides the user with a number of classes that make windows programming easier
3 Windows Programming Based on event-driven architecture Console applications - the program tells ( drives ) the user when and what to enter Windows applications - the user drives the program by interacting with it The program thus interacts with the user by handling events and waiting for new events from the user
4 What Does This Mean to the Programmer? Flow of logic is no longer as explicit Need to design the system more carefully to ensure it always behaves in a graceful and reasonable manner no matter what the user does This applies to console applications as well, however since the user actions are typically less restricted in Windows applications this means the code has to handle more user actions appropriately
5 MFC versus Swing The obvious difference - MFC is for Win32 C++, Swing is for Java MFC is an abstraction / improvement of Win32 GUI programming Swing is an abstraction / improvement of AWT Swing is considerably younger than MFC, and as such is easier to use and is more elegant Swing has listeners, MFC has message maps One of the reasons why MFC is uglier / trickier MFC has its own resource definition language ; Swing does not
6 Event-Driven Programming in Windows (1 / 4) Done by using a message map: A message map is a mapping of possible actions(message identifiers) the user can do to message handlers - functions that handle the message appropriately The coder defines what messages the application should listen for and what message handlers to call
7 Event-Driven Programming in Windows (2 / 4) Does the coder have to handle all types of messages? No, Windows provides default message handlers for all standard message identifiers (for the particular objects, like windows) User can override this behavior Coders can also define their own message identifiers and the corresponding message handlers
8 Event-Driven Programming in Windows (3 / 4) A message map looks like so: BEGIN_MESSAGE_MAP( ownerclassname, baseclassname) // Mappings go here END_MESSAGE_MAP() A default mapping: ON_WM_PAINT() // Calls OnPaint() A custom mapping: ON_COMMAND(ID, foo) // Calls foo()
9 Event-Driven Programming in Windows (4 / 4) When to override default message handlers (such as OnPaint())? When you want to provide different functionality, such as your own way to paint a window ON_COMMAND(), used with user-defined message identifiers, is commonly used for handling menu selections We will come back to these in a bit
10 The Hungarian Notation Used to make variable names more explicit - prefix doubles with a d, classes with a C, etc Makes it easier to read the code (if you know what the prefixes mean, of course) The table on the right is from page 32 of your MFC textbook ar - array b - BOOL/bool c - char C - class d - double l - long lp - long pointer m_ - class member variable n or i - integer p - pointer s - string sz - string with null termination s_ - static class member
11 Creating an MFC Project in VC (1 / 4) Select File -> New from the menu Click on the Projects tab Select Win32 Application and fill in the project name / location Do not use Wizards, select An empty project on the next screen and click Finish
12 Creating an MFC Project in VC (2 / 4) Add a.h and a.cpp file As usual, your.h file should contain the specification and.cpp the implementation Enable MFC (Project -> Settings -> General -> Microsoft Foundation Classes -> Use MFC in a Shared DLL) In your.cpp, #include <afxwin.h> Code your program, extending existing MFC classes such as CFrameWnd and CWinApp
13 Creating an MFC Project in VC (3 / 4) The class that extends CWinApp is the one responsible for launching your application (it is the entry point) Typically it is very simple - it opens the main window and passes control to it You can do other initialization here such as setting up data structures
14 Creating an MFC Project in VC (4 / 4) Typically you will have a class that extends CFrameWnd, this is the class that is responsible for displaying a window In the simple example from the textbook, this class creates a window with a textbox in the center
15 Closer Look at the Example (1 / 3) BOOL InitInstance() { m_pmainwnd = new CWelcomeWindow(); m_pmainwnd->showwindow( m_ncmdshow ); m_pmainwnd->updatewindow(); return TRUE; } Overrides the default InitInstance() from CWinApp Creates a new window, displays and updates it Returns TRUE to signify success of initialization
16 Closer Look at the Example (2 / 3) Create(NULL, "Welcome", WS_OVERLAPPEDWINDOW, CRect(100, 100, 300, 300)); Creates a standard window (the NULL and the WS_OVERLAPPEDWINDOW flag) with title Welcome, with its top left corner at (100,100) and bottom right at (300,300) Just as in Java (0,0) is the top left corner, y-coordinate increases as you go down and x-coordinate increases as you go right
17 Closer Look at the Example (3 / 3) m_pgreeting->create("welcome to Visual C++ with MFC!", WS_CHILD WS_VISIBLE WS_BORDER SS_CENTER, CRect( 40, 50, 160, 100 ), this); Creates the window holding the text Welcome to ; the other arguments are the window style (note the ORed flags), location, and owner In this particular case the style is child window, visible, with a border and with centered-text justification by default
18 Menus and Resources (1 / 4) When a menu item is selected it sends a programmerdefined message These messages are typically prefixed with IDM_ (M for menu) Need to be defined somewhere Defined as macros using #define, not const Programmer-defined messages should have values between 1024 and 65545, are reserved for windows messages They are then handled by adding appropriate entries to the message map
19 Menus and Resources (2 / 4) To handle a particular message the programmer should add the following to the message map: ON_COMMAND(IDM_MSGID, DoSomething); When the message with id IDM_MSGID is received, the method DoSomething() is executed Can also handle a range of messages: ON_COMMAND_RANGE(START, END, Process); When the message with id between START and END is received, the method Process(UINT id) is executed
20 Menus and Resources (3 / 4) Defining a menu: Can either write the resource file by hand or use the VC++ IDE interface Looking at the source of the resource file: Food MENU{ POPUP "File" {MENUITEM "Exit", IDM_EXIT} } Defines the Exit item of the File menu and assigns it IDM_EXIT id
21 Menus and Resources (4 / 4) A menu with two items: POPUP "Beverage"{ } MENUITEM "Ginger Ale", IDM_GINGERALE MENUITEM "Root Beer", IDM_ROOTBEER Similarly, creates a Beverage menu with items Ginger Ale and Root Beer with corresponding IDs A single resource file may contain more than one menu Resource files are written in resource definition language that is actually not C++ More on resources later
22 Revisiting the Message Map (1 / 2) For the menu example, the map looks like this: BEGIN_MESSAGE_MAP(CMenusWin, CFrameWnd) ON_COMMAND(IDM_EXIT, OnExit) ON_COMMAND_RANGE(IDM_CHICKEN, END_MESSAGE_MAP() IDM_ROOTBEER, OnDoFood) Note the mapping from message identifier(s) to the message handler
23 Revisiting the Message Map (2 / 2) A small modification is required to the corresponding.h: Need to add DECLARE_MESSAGE_MAP() to the end of the class declaration This refers to the message map in the.cpp file Why? MFC preprocessor magic
24 ON_COMMAND An example of how to use ON_COMMAND: afx_msg void CMenusWin::OnExit() { } SendMessage(WM_CLOSE); This particular example exits the program. It does so by sending another message that is handled by the parent class, namely the close window message
25 ON_COMMAND_RANGE An example of how to use ON_COMMAND_RANGE: afx_msg void CMenusWin::OnDoFood(UINT nfood) { switch (nfood) { case IDM_CHICKEN: tally(m_nchicken, 2.25); break; case IDM_FISH: tally(m_nfish, 1.80); break; }}
26 MFC Conventions for Message Handlers Prefixed with afx_msg Begin with On and followed by the message type (e.g. Exit ) No parameters, return type is void For ON_COMMAND_RANGE, as we ve just seen, takes in a single unsigned integer as its sole argument
27 Dialog Boxes (1 / 3) Typically used to either get small pieces of information from the user (e.g. username / password) or to report progress / error to the user Are less flexible and simpler than regular windows To make a dialog box in MFC your class should extend CDialog (rather than CFrameWnd as before)
28 Dialog Boxes (2 / 3) Often dialog boxes are displayed as modal - while the dialog is open no other window of the particular application can gain focus This is referred to as application modal In some special applications you might encounter system modal dialogs - you cannot do anything else until these are closed As you have probably guessed these should be used only when absolutely necessary
29 Dialog Boxes (3 / 3) Not very different in terms of code in comparison to windows: Inherit CDialog (instead of CFrameWnd) Define a message map and the necessary ids / handlers Define an entry point as before (a class that inherits from CWinApp and overrides InitInstance())
30 CEdit and CButton Controls (1 / 3) The third example in the textbook introduces these two controls and uses them in a dialog CEdit is the basic edit text box (think JTextField, from Swing) CButton is the basic button (think JButton, from Swing)
31 CEdit and CButton Controls (2 / 3) Both inherit from CWnd, and as such support some common operations such as getting and setting the currently displayed text: GetWindowText(buffer, size); SetWindowText(buffer); Of course the way the text will be displayed is specific to the given component: Button simply displays the text Edit text box allows you modify this text by interacting with it
32 CEdit and CButton Controls (3 / 3) Having a look at the resource file (available in the book / online) we see that: IDC_NUMBER is an edit text box that supports numbers only IDC_ADD is a default button for this dialog IDC_TOTAL is a read-only edit text box that does not have a tab-stop IDC_CLEAR is a regular button that does not have a tab-stop
33 itoa() and atoi() These two functions have a very simple purpose Translate from an integer to a C-style string (itoa = int to string ) Translate from a C-style string to an integer (atoi = string to int) Handy for quick conversions, but not hard to write your own (e.g. using stringstream or sprintf()) Not specific to MFC alone
34 Grabbing Controls from a Dialog (1 / 2) Allows to get a handle to a control inside the current dialog window Grab the IDC_NUMBER edit text box: CEdit *pnum = (CEdit *) (GetDlgItem(IDC_NUMBER)); Can also use the overloaded version on regular windows by passing it the pointer to the parent window as the first parameter, followed by the id
35 Grabbing Controls from a Dialog (2 / 2) Once you have the pointer to the control you can use it to manipulate the control: pnum->setwindowtext( "" ); // clear input pnum->setfocus(); // next input to Number This is handy, as you don t need to define a class member for every single control that you might need to access at some point in your code
Laboratory Exercise 11 Alternate (Intro to MFC)
Laboratory Exercise 11 Alternate (Intro to MFC) Topics: Microsoft Foundation Classes Goals: Upon successful completion of this lab you should be able to: 1. Write a simple winows program using the MFC
More informationIntroducing MFC. Programming Windows with MFC, Second Edition. Jeff Prosise
Introducing MFC Programming Windows with MFC, Second Edition. Jeff Prosise 1 Hello, MFC Short Years Ago Windows Applications written in C: Knowing the ins and outs of new operating system Knowing hundreds
More information15. Microsoft Foundation Classes
15. Microsoft Foundation Classes This section of the notes presumes the student has already been familiarized with some general principles of GUI programming, and with a very brief introduction to MS-
More informationAssignment 3: Inheritance
Assignment 3: Inheritance Due Wednesday March 21 st, 2012 by 11:59 pm. Submit deliverables via CourSys: https://courses.cs.sfu.ca/ Late penalty is 10% per calendar day (each 0 to 24 hour period past due).
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationWindows Socket Message-Driven/WSAAsyncSelect Model. Prof. Lin Weiguo Copyleft 2009~2015, College of Computing, CUC
Windows Socket Message-Driven/WSAAsyncSelect Model Prof. Lin Weiguo Copyleft 2009~2015, College of Computing, CUC Dec 2015 Note You should not assume that an example in this presentation is complete. Items
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationPointers in C/C++ 1 Memory Addresses 2
Pointers in C/C++ Contents 1 Memory Addresses 2 2 Pointers and Indirection 3 2.1 The & and * Operators.............................................. 4 2.2 A Comment on Types - Muy Importante!...................................
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationLab 03 - x86-64: atoi
CSCI0330 Intro Computer Systems Doeppner Lab 03 - x86-64: atoi Due: October 1, 2017 at 4pm 1 Introduction 1 2 Assignment 1 2.1 Algorithm 2 3 Assembling and Testing 3 3.1 A Text Editor, Makefile, and gdb
More informationBeyond CSE143. What s Left To Do? Templates. Using Templates. A Template Class. A Problem with Reusing Code CSE 143
What s Left To Do? Beyond CSE143 Templates Modern Software Development Windows and Java 143 Wrapup Beyond the C++ covered in this course Many topics, many more details of topics we did cover Main omission:
More informationWelcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 8/19/ Review. Here s a simple C++ program:
Welcome Back CSCI 262 Data Structures 2 - Review What you learned in CSCI 261 (or equivalent): Variables Types Arrays Expressions Conditionals Branches & Loops Functions Recursion Classes & Objects Streams
More informationWelcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 1/9/ Review. Here s a simple C++ program:
Welcome Back CSCI 262 Data Structures 2 - Review What you learned in CSCI 261 (or equivalent): Variables Types Arrays Expressions Conditionals Branches & Loops Functions Recursion Classes & Objects Streams
More informationCS 261 Fall C Introduction. Variables, Memory Model, Pointers, and Debugging. Mike Lam, Professor
CS 261 Fall 2017 Mike Lam, Professor C Introduction Variables, Memory Model, Pointers, and Debugging The C Language Systems language originally developed for Unix Imperative, compiled language with static
More informationDesigning Interactive Systems II
Designing Interactive Systems II Computer Science Graduate Programme SS 2010 Prof. Dr. RWTH Aachen University http://hci.rwth-aachen.de 1 Review: Conviviality (Igoe) rules for networking role of physical
More informationCSE 374 Programming Concepts & Tools
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2017 Lecture 8 C: Miscellanea Control, Declarations, Preprocessor, printf/scanf 1 The story so far The low-level execution model of a process (one
More informationC Introduction. Comparison w/ Java, Memory Model, and Pointers
CS 261 Fall 2018 Mike Lam, Professor C Introduction Comparison w/ Java, Memory Model, and Pointers Please go to socrative.com on your phone or laptop, choose student login and join room LAMJMU The C Language
More informationKLiC C Programming. (KLiC Certificate in C Programming)
KLiC C Programming (KLiC Certificate in C Programming) Turbo C Skills: The C Character Set, Constants, Variables and Keywords, Types of C Constants, Types of C Variables, C Keywords, Receiving Input, Integer
More informationa data type is Types
Pointers Class 2 a data type is Types Types a data type is a set of values a set of operations defined on those values in C++ (and most languages) there are two flavors of types primitive or fundamental
More informationDEPARTMENT OF INFORMATION TECHNOLOGY ACADEMIC YEAR EVEN SEMESTER QUESTION BANK. UNIT I WINDOWS PROGRAMMING Part-A (2-MARKS)
SUB CODE: CS1253 DEPARTMENT OF INFORMATION TECHNOLOGY ACADEMIC YEAR 2008-2009 EVEN SEMESTER SUB NAME: VISUAL PROGRAMMING QUESTION BANK UNIT I WINDOWS PROGRAMMING 1. Write a simple windows program to print
More informationStarting Microsoft Visual Studio 6.0 And Exploring Available Controls Tools
Starting Microsoft Visual Studio 6.0 And Exploring Available Controls Tools Section 1. Opening Microsoft Visual Studio 6.0 1. Start Microsoft Visual Studio ("C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.EXE")
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More informationGraphical User Interface (GUI)
Graphical User Interface (GUI) An example of Inheritance and Sub-Typing 1 Java GUI Portability Problem Java loves the idea that your code produces the same results on any machine The underlying hardware
More informationMFC Programmer s Guide: Getting Started
MFC Programmer s Guide: Getting Started MFC PROGRAMMERS GUIDE... 2 PREPARING THE DEVELOPMENT ENVIRONMENT FOR INTEGRATION... 3 INTRODUCING APC... 4 GETTING VISUAL BASIC FOR APPLICATIONS INTO YOUR MFC PROJECT...
More informationAbsolute C++ Walter Savitch
Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents
More informationPointer Basics. Lecture 13 COP 3014 Spring March 28, 2018
Pointer Basics Lecture 13 COP 3014 Spring 2018 March 28, 2018 What is a Pointer? A pointer is a variable that stores a memory address. Pointers are used to store the addresses of other variables or memory
More informationCS3215. Outline: 1. Introduction 2. C++ language features 3. C++ program organization
CS3215 C++ briefing Outline: 1. Introduction 2. C++ language features 3. C++ program organization CS3215 C++ briefing 1 C++ versus Java Java is safer and simpler than C++ C++ is faster, more powerful than
More informationDifferent Ways of Writing Windows Programs
How Windows Works Notes for CS130 Dr. Beeson Event-Driven Programming. In Windows, and also in Java applets and Mac programs, the program responds to user-initiated events: mouse clicks and key presses.
More information5. In JAVA, is exception handling implicit or explicit or both. Explain with the help of example java programs. [16]
Code No: R05220402 Set No. 1 1. (a) java is freeform language. Comment (b) Describe in detail the steps involved in implementing a stand-alone program. (c) What are command line arguments? How are they
More informationComputer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring Topic Notes: C and Unix Overview
Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring 2009 Topic Notes: C and Unix Overview This course is about computer organization, but since most of our programming is
More informationTarget Definition Builder. Software release 4.20
Target Definition Builder Software release 4.20 July 2003 Target Definition Builder Printing History 1 st printing December 21, 2001 2 nd printing May 31, 2002 3 rd printing October 31, 2002 4 th printing
More informationChapter 1 Getting Started
Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different
More informationIntroduce C# as Object Oriented programming language. Explain, tokens,
Module 2 98 Assignment 1 Introduce C# as Object Oriented programming language. Explain, tokens, lexicals and control flow constructs. 99 The C# Family Tree C Platform Independence C++ Object Orientation
More informationKINGS COLLEGE OF ENGINEERING PUNALKULAM DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK UNIT - I WINDOWS PROGRAMMING PART A (2 MARKS)
1 KINGS COLLEGE OF ENGINEERING PUNALKULAM - 613 303 DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK Subject Code & Name: CS1305 Visual Programming Year / Sem : III / VI UNIT - I WINDOWS PROGRAMMING
More informationJDirectoryChooser Documentation
JDirectoryChooser Documentation Page 1 of 7 How to Use JDirectoryChooser The JDirectoryChooser provides user-friendly GUI for manipulating directories from Java application. User can either simply choose
More informationChapter 15 Programming Paradigm
Chapter 15 Programming Paradigm A Windows program, like any other interactive program, is for the most part inputdriven. However, the input of a Windows program is conveniently predigested by the operating
More informationGOSSIP User Manual gossip-sim
GOSSIP User Manual gossip-sim Marius Vollmer Copyright c 2000 Marius Vollmer. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission
More informationLecture 2, September 4
Lecture 2, September 4 Intro to C/C++ Instructor: Prashant Shenoy, TA: Shashi Singh 1 Introduction C++ is an object-oriented language and is one of the most frequently used languages for development due
More informationContents. iii Copyright 1998 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 1998, Revision B
Contents About the Course...xv Course Overview... xvi Course Map... xvii Module-by-Module Overview... xviii Course Objectives... xxii Skills Gained by Module... xxiii Guidelines for Module Pacing... xxiv
More information377 Student Guide to C++
377 Student Guide to C++ c Mark Corner January 21, 2004 1 Introduction In this course you will be using the C++ language to complete several programming assignments. Up to this point we have only provided
More informationLecture Notes on Generic Data Structures
Lecture Notes on Generic Data Structures 15-122: Principles of Imperative Computation Frank Pfenning Lecture 22 November 15, 2012 1 Introduction Using void* to represent pointers to values of arbitrary
More informationCSE 431S Type Checking. Washington University Spring 2013
CSE 431S Type Checking Washington University Spring 2013 Type Checking When are types checked? Statically at compile time Compiler does type checking during compilation Ideally eliminate runtime checks
More informationFinal exam. Final exam will be 12 problems, drop any 2. Cumulative up to and including week 14 (emphasis on weeks 9-14: classes & pointers)
Review Final exam Final exam will be 12 problems, drop any 2 Cumulative up to and including week 14 (emphasis on weeks 9-14: classes & pointers) 2 hours exam time, so 12 min per problem (midterm 2 had
More informationJava for Non Majors. Final Study Guide. April 26, You will have an opportunity to earn 20 extra credit points.
Java for Non Majors Final Study Guide April 26, 2017 The test consists of 1. Multiple choice questions 2. Given code, find the output 3. Code writing questions 4. Code debugging question 5. Short answer
More informationCS Exam 1 Review Suggestions
CS 235 - Fall 2015 - Exam 1 Review Suggestions p. 1 last modified: 2015-09-30 CS 235 - Exam 1 Review Suggestions You are responsible for material covered in class sessions, lab exercises, and homeworks;
More informationInvestintech.com Inc. Software Development Kit: PDFtoImage Function Library User s Guide
Investintech.com Inc. Software Development Kit: PDFtoImage Function Library User s Guide Novemebr 6, 2007 http://www.investintech.com Copyright 2007 Investintech.com, Inc. All rights reserved Adobe is
More informationFun facts about recursion
Outline examples of recursion principles of recursion review: recursive linked list methods binary search more examples of recursion problem solving using recursion 1 Fun facts about recursion every loop
More informationAnnotation Annotation or block comments Provide high-level description and documentation of section of code More detail than simple comments
Variables, Data Types, and More Introduction In this lesson will introduce and study C annotation and comments C variables Identifiers C data types First thoughts on good coding style Declarations vs.
More informationModule 1: Microsoft Windows, Visual C++ and Microsoft Foundation Class (MFC)
Module 1: Microsoft Windows, Visual C++ and Microsoft Foundation Class (MFC) Program examples compiled using Visual C++ 6.0 (MFC 6.0) compiler on Windows XP Pro machine with Service Pack 2. Topics and
More informationPROGRAMMING DESIGN USING JAVA (ITT 303) Unit 7
PROGRAMMING DESIGN USING JAVA (ITT 303) Graphical User Interface Unit 7 Learning Objectives At the end of this unit students should be able to: Build graphical user interfaces Create and manipulate buttons,
More informationIntroduction to the JAVA UI classes Advanced HCI IAT351
Introduction to the JAVA UI classes Advanced HCI IAT351 Week 3 Lecture 1 17.09.2012 Lyn Bartram lyn@sfu.ca About JFC and Swing JFC Java TM Foundation Classes Encompass a group of features for constructing
More informationDecaf Language Reference Manual
Decaf Language Reference Manual C. R. Ramakrishnan Department of Computer Science SUNY at Stony Brook Stony Brook, NY 11794-4400 cram@cs.stonybrook.edu February 12, 2012 Decaf is a small object oriented
More informationwww.openwire.org www.mitov.com Copyright Boian Mitov 2004-2011 Index Installation...3 Where is PlotLab?...3 Creating a new PlotLab project in Visual C++...3 Creating a simple Scope application...13 Creating
More informationJava for Non Majors Spring 2018
Java for Non Majors Spring 2018 Final Study Guide The test consists of 1. Multiple choice questions - 15 x 2 = 30 points 2. Given code, find the output - 3 x 5 = 15 points 3. Short answer questions - 3
More informationProgramming in graphical environment. Introduction
Programming in graphical environment Introduction The lecture Additional resources available at: http://www.mini.pw.edu.pl/~maczewsk/windows_2004 Recommended books: Programming Windows - Charles Petzold
More informationSoftware Design and Analysis for Engineers
Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 2 Date:
More informationChapter 2 Using Data. Instructor s Manual Table of Contents. At a Glance. Overview. Objectives. Teaching Tips. Quick Quizzes. Class Discussion Topics
Java Programming, Sixth Edition 2-1 Chapter 2 Using Data At a Glance Instructor s Manual Table of Contents Overview Objectives Teaching Tips Quick Quizzes Class Discussion Topics Additional Projects Additional
More informationEL2310 Scientific Programming
Lecture 11: Structures and Memory (yaseminb@kth.se) Overview Overview Lecture 11: Structures and Memory Structures Continued Memory Allocation Lecture 11: Structures and Memory Structures Continued Memory
More informationSFU CMPT Topic: More MFC Programming
SFU CMPT-212 2008-1 1 Topic: More MFC Programming SFU CMPT-212 2008-1 Topic: More MFC Programming Ján Maňuch E-mail: jmanuch@sfu.ca Sunday 30 th March, 2008 SFU CMPT-212 2008-1 2 Topic: More MFC Programming
More informationAppendix A: Toolbar Example
Appendix A: Toolbar Example Menu 10 file #define ID MA FILE NEW 10 - - - #define ID MA FILE OPEN 11 #define ID MA FILE SAVE 12 #define ID MA FILE SAVE AS 13 #define ID MA FILE PAGE SETUP 14 - - #define
More informationWritten by John Bell for CS 342, Spring 2018
Advanced OO Concepts Written by John Bell for CS 342, Spring 2018 Based on chapter 3 of The Object-Oriented Thought Process by Matt Weisfeld, with additional material from other sources. Constructors Constructors
More informationLecture Notes on Generic Data Structures
Lecture Notes on Generic Data Structures 15-122: Principles of Imperative Computation Frank Pfenning, Penny Anderson Lecture 21 November 7, 2013 1 Introduction Using void* to represent pointers to values
More informationMore loops Ch
More loops Ch 3.3-3.4 Announcements Quiz next week! -Covers up to (and including) HW1 (week 1-3) -Topics: cout/cin, types, scope, if/else, etc. Review: Loops We put a loop around code that we want to run
More informationBinghamton University. CS-211 Fall Syntax. What the Compiler needs to understand your program
Syntax What the Compiler needs to understand your program 1 Pre-Processing Any line that starts with # is a pre-processor directive Pre-processor consumes that entire line Possibly replacing it with other
More informationTOPIC 2 INTRODUCTION TO JAVA AND DR JAVA
1 TOPIC 2 INTRODUCTION TO JAVA AND DR JAVA Notes adapted from Introduction to Computing and Programming with Java: A Multimedia Approach by M. Guzdial and B. Ericson, and instructor materials prepared
More informationQUIZ. What is wrong with this code that uses default arguments?
QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code
More informationAssignment 1. Application Development
Application Development Assignment 1 Content Application Development Day 1 Lecture The lecture provides an introduction to programming, the concept of classes and objects in Java and the Eclipse development
More informationCE221 Programming in C++ Part 1 Introduction
CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab
More informationCOSC 2P91. Introduction Part Deux. Week 1b. Brock University. Brock University (Week 1b) Introduction Part Deux 1 / 14
COSC 2P91 Introduction Part Deux Week 1b Brock University Brock University (Week 1b) Introduction Part Deux 1 / 14 Source Files Like most other compiled languages, we ll be dealing with a few different
More information2. OpenGL in a Window System
2. OpenGL in a Window System OpenGL is purely a graphics API It provides no support for - performing windowing tasks - obtaining user input - rendering fonts Every windowing system must provide some library
More informationG52CPP C++ Programming Lecture 10. Dr Jason Atkin
G52CPP C++ Programming Lecture 10 Dr Jason Atkin 1 Last lecture Constructors Default constructor needs no parameters Default parameters Inline functions Like safe macros in some ways Function definitions
More informationFull file at
Java Programming, Fifth Edition 2-1 Chapter 2 Using Data within a Program At a Glance Instructor s Manual Table of Contents Overview Objectives Teaching Tips Quick Quizzes Class Discussion Topics Additional
More informationUniversity of Illinois at Urbana-Champaign Department of Computer Science. First Examination
University of Illinois at Urbana-Champaign Department of Computer Science First Examination CS 225 Data Structures and Software Principles Summer 2005 3:00pm 4:15pm Tuesday, July 5 Name: NetID: Lab Section
More informationC Language Part 1 Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee
C Language Part 1 (Minor modifications by the instructor) References C for Python Programmers, by Carl Burch, 2011. http://www.toves.org/books/cpy/ The C Programming Language. 2nd ed., Kernighan, Brian,
More informationCS3157: Advanced Programming. Outline
CS3157: Advanced Programming Lecture #12 Apr 3 Shlomo Hershkop shlomo@cs.columbia.edu 1 Outline Intro CPP Boring stuff: Language basics: identifiers, data types, operators, type conversions, branching
More informationControl Flow: Overview CSE3461. An Example of Sequential Control. Control Flow: Revisited. Control Flow Paradigms: Reacting to the User
CSE3461 Control Flow Paradigms: Reacting to the User Control Flow: Overview Definition of control flow: The sequence of execution of instructions in a program. Control flow is determined at run time by
More information3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.
3.Constructors and Destructors Develop cpp program to implement constructor and destructor. Constructors A constructor is a special member function whose task is to initialize the objects of its class.
More informationWeek 7. Statically-typed OO languages: C++ Closer look at subtyping
C++ & Subtyping Week 7 Statically-typed OO languages: C++ Closer look at subtyping Why talk about C++? C++ is an OO extension of C Efficiency and flexibility from C OO program organization from Simula
More informationProject 2: Shell with History1
Project 2: Shell with History1 See course webpage for due date. Submit deliverables to CourSys: https://courses.cs.sfu.ca/ Late penalty is 10% per calendar day (each 0 to 24 hour period past due). Maximum
More informationAdvanced Systems Programming
Advanced Systems Programming Introduction to C++ Martin Küttler September 19, 2017 1 / 18 About this presentation This presentation is not about learning programming or every C++ feature. It is a short
More informationGraphical User Interface (GUI)
Graphical User Interface (GUI) An example of Inheritance and Sub-Typing 1 Java GUI Portability Problem Java loves the idea that your code produces the same results on any machine The underlying hardware
More informationCS260 Intro to Java & Android 03.Java Language Basics
03.Java Language Basics http://www.tutorialspoint.com/java/index.htm CS260 - Intro to Java & Android 1 What is the distinction between fields and variables? Java has the following kinds of variables: Instance
More informationInvestintech.com Inc. Software Development Kit: PDF-to-Excel Function Library User s Guide
Investintech.com Inc. Software Development Kit: PDF-to-Excel Function Library User s Guide May 25, 2007 http://www.investintech.com Copyright 2007 Investintech.com, Inc. All rights reserved Adobe is registered
More informationLSN 4 GUI Programming Using The WIN32 API
LSN 4 GUI Programming Using The WIN32 API ECT362 Operating Systems Department of Engineering Technology LSN 4 Why program GUIs? This application will help introduce you to using the Win32 API Gain familiarity
More informationCSE331 Winter 2014, Final Examination March 17, 2014 Please do not turn the page until 8:30. Rules:
CSE331 Winter 2014, Final Examination March 17, 2014 Please do not turn the page until 8:30. Rules: The exam is closed-book, closed-note, etc. Please stop promptly at 10:20. There are 116 points total,
More informationInvestintech.com Inc. Software Development Kit: ImagetoPDF Function Library User s Guide
Investintech.com Inc. Software Development Kit: ImagetoPDF Function Library User s Guide December 31, 2007 http://www.investintech.com Copyright 2007 Investintech.com, Inc. All rights reserved Adobe is
More informationCSCI S-Q Lecture #12 7/29/98 Data Structures and I/O
CSCI S-Q Lecture #12 7/29/98 Data Structures and I/O Introduction The WRITE and READ ADT Operations Case Studies: Arrays Strings Binary Trees Binary Search Trees Unordered Search Trees Page 1 Introduction
More informationA Fast Review of C Essentials Part I
A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types
More informationGraphical User Interface (Part-1) Supplementary Material for CPSC 233
Graphical User Interface (Part-1) Supplementary Material for CPSC 233 Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window
More information11 Data Structures Foundations of Computer Science Cengage Learning
11 Data Structures 11.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define a data structure. Define an array as a data structure
More informationTokens, Expressions and Control Structures
3 Tokens, Expressions and Control Structures Tokens Keywords Identifiers Data types User-defined types Derived types Symbolic constants Declaration of variables Initialization Reference variables Type
More informationQUIZ. How could we disable the automatic creation of copyconstructors
QUIZ How could we disable the automatic creation of copyconstructors pre-c++11? What syntax feature did C++11 introduce to make the disabling clearer and more permanent? Give a code example. QUIZ How
More informationTopic 9: Swing. Swing is a BIG library Goal: cover basics give you concepts & tools for learning more
Swing = Java's GUI library Topic 9: Swing Swing is a BIG library Goal: cover basics give you concepts & tools for learning more Assignment 5: Will be an open-ended Swing project. "Programming Contest"
More informationTopic 9: Swing. Why are we studying Swing? GUIs Up to now: line-by-line programs: computer displays text user types text. Outline. 1. Useful & fun!
Swing = Java's GUI library Topic 9: Swing Swing is a BIG library Goal: cover basics give you concepts & tools for learning more Why are we studying Swing? 1. Useful & fun! 2. Good application of OOP techniques
More informationImporting source database objects from a database
Importing source database objects from a database We are now at the point where we can finally import our source database objects, source database objects. We ll walk through the process of importing from
More informationCS 3 Introduction to Software Engineering. 3: Exceptions
CS 3 Introduction to Software Engineering 3: Exceptions Questions? 2 Objectives Last Time: Procedural Abstraction This Time: Procedural Abstraction II Focus on Exceptions. Starting Next Time: Data Abstraction
More informationEE 382 Style Guide. March 2, 2018
EE 382 Style Guide March 2, 2018 This is a short document describing the coding style for this class. All code written in this class is assumed to follow this coding style. 1 Indentation Indentations should
More informationReview of the C Programming Language for Principles of Operating Systems
Review of the C Programming Language for Principles of Operating Systems Prof. James L. Frankel Harvard University Version of 7:26 PM 4-Sep-2018 Copyright 2018, 2016, 2015 James L. Frankel. All rights
More informationIntroduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p.
Introduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p. 9 Self-Test Exercises p. 11 History Note p. 12 Programming and
More informationClosures. Mooly Sagiv. Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming
Closures Mooly Sagiv Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming Summary 1. Predictive Parsing 2. Large Step Operational Semantics (Natural) 3. Small Step Operational Semantics
More information