programação para ms

Propaganda
PROGRAMAÇÃO PARA
MS-WINDOWS EM C++
Alvaro Azevedo
Faculdade de Engenharia
Universidade do Porto
Email: [email protected]
1
I PARTE
Componentes do MS-Windows
Graphical User Interface
II PARTE
Desenvolvimento de aplicações
Windows em Visual C++
2
1
I PARTE
Menus
• Pull Down Menus
• Pop Up Menus
• Context Menus (Right Mouse Button)
Construção de menus...
3
Accelerator table
(global)
Ex:
Ctrl+S
File / Save
F5
Window / Refresh
4
2
String table
(global)
Clear screen
Effacer l’écran
Ex: IDS_CLEAR_SCREEN
Borrar la pantalla
Apagar o écran
Facilita a tradução do programa
é suficiente traduzir o ficheiro .RC
5
Dialog Boxes
Controls
• Static Text
• Buttons
• Edit Boxes
• Radio Buttons
• Group Boxes
• List Boxes
• Check Boxes
• Tab Control
• Combo Boxes
• etc.
Construção de dialog boxes...
6
3
Toolbars
• Dockable
• Tooltips
Statusbar
• Pane Text
• Help, Indicators
7
Graphics Device Interface (GDI)
• Pen
Linhas
• Brush
Superfícies
• Font
Texto
FEUP
Funções
SetPixel, MoveTo, LineTo, Arc, Polyline
PolyBezier, FillRgn, TextOut, etc.
8
4
Device Context (DC)
Agrupa todas as opções relativas
às saídas gráficas.
Exemplos:
• características da “Pen”
• características da “Brush”
• características da “Font”
9
Cor
Variáveis do tipo COLORREF
Ex: COLORREF myColor = RGB(255, 255, 128);
4 bits (16 cores)
16 cores puras fixas *
8 bits (256 cores)
20 cores puras fixas * +
16 ou 32 bits
no problems
* as restantes obtêm-se por dithering
+ para ter mais cores puras pode-se
recorrer à MFC CPalette
10
5
Windows Messages
Estão associadas a acontecimentos
Exemplos:
WM_PAINT
WM_VSCROLL
WM_MOUSEMOVE
WM_LBUTTONDOWN
WM_KEYDOWN
WM_SETCURSOR
WM_COMMAND
WM_CREATE
Vão para uma fila de espera e são processadas sequencialmente
11
AppWizard
Geração de um “application framework”
Pode ser configurado...
12
6
II PARTE
Programação orientada para objectos
C++
13
A better “C”
• Protótipos obrigatórios (mais segurança)
• Operator overloading
• cin, cout (em vez de scanf, printf)
• new, delete (em vez de malloc, free)
14
7
B
Classes
A
• Data members
Ex: xA , yA , xB , yB
Vector
• Member functions
Norma ( )
Retorna a norma do vector
Note-se a ausência de parâmetros de passagem
15
Objectos
Vector va, vb, vc;
cout << vb.Norma();
Vector* pv;
cout << pv
Norma();
16
8
Inheritance
4 2 7
2 9 0
Matriz
Matriz
genérica
Matriz
simétrica
7 0 5
Matriz
esparsa
17
Aggregation
Automóvel
Motor
Rodas
Chassis
18
9
Polymorphism
Virtual functions
Constructors
Destructors
Scope resolution
References
Public/Private
19
MFC - Microsoft Foundation Classes
CObject
CString
user objects
CCmdTarget
CWnd
CPoint
CTypedPtrList
CFrameWnd
CDialog
SERIALIZATION
CControlBar
20
10
Utilização das MFC
CPen Caneta;
Caneta.CreatePen(PS_SOLID, Espessura, Cor);
CPen* pAntigaCaneta = pDC -> SelectObject(&Caneta);
pDC->MoveTo(10, 10);
pDC->LineTo(200, 200);
pDC->SelectObject(pAntigaCaneta);
21
Document-View Architecture
• Documents
Entidades independentes
umas das outras
Ex: edifício A, edifício B
• Views
Diferentes modos de
visualizar cada documento
Ex: alçado do edifício A,
perspectiva do edifício A
22
11
Acesso ao document a partir da view
CMyDoc* pDoc = GetDocument();
int nLine = pDoc
GetLineCount();
O processamento da generalidade dos acontecimentos
é efectuado na view (Ex: key down, mouse move, etc.)
23
Class Wizard
Ligação ao código de menu commands, messages e controls
Selecção de um menu
Execução de uma função
Ex: Mudar/Cor
OnMudarCor()
WM_LBUTTONDOWN
Dialog boxes
OnLButtonDown(UINT nFlags, CPoint point)
Criar uma classe para a dialog box e
associar variáveis aos controls
24
12
Visual C++ 4.0
Ambiente integrado para o desenvolvimento de aplicações
Editor de texto
Editor de menus
Class wizard
Editor de dialog boxes
Editor de bitmaps
Editor de toolbars
Editor de icons
On-line Help
Compilador/linker
Browser
25
26
13
Download