单文档应用程序设计主要内容
基本 MFC应用程序框架
在 MFC应用程序中实现简单的文字输入输出
学会使用 ClassWizard
基本 MFC应用程序框架
基本 C++程序框架
#include <iostream.h>
void main()
{
cout<<“Hello C++”<<endl;
}
基本 MFC程序框架从 AppWizard向导开始 ……
CObject
CCmdTarget
CWinThread CDocument
CWinApp CFrameWnd CView
CWnd
CHelloApp CHelloDoc CMainFrame CHelloView
WinMain函数在哪里???
WinMain CWinApp封装
RegisterClass(… );
CreatWindow(… );
ShowWindow(… );
UpdateWindow(… );
virtual BOOL InitApplication();
virtual BOOL InitInstance();
virtual int Run();
WinProc CFrameWnd封装
MFC应用程序运行机制
调用 CWinApp的构造函数
程序入口函数 WinMain接受控制 (系统实现 )
WinMain函数调用应用程序类的 InitInstance函数
WinMain函数进入消息循环
WinMain退出,程序终止代码解析
代码风格:
注释文字、关键字、一般代码、系统自动维护的代码
CHelloApp的 InitInstance函数
消息处理机制和消息映射宏
Hello MFC程序的实现分析:
明确自己想要实现的功能由哪个事件触发
明确该事件由哪个类型处理
完成消息映射改进:在窗口中间显示字符串,Hello MFC”
BOOL TextOut(
int x,
int y,
const CString& str
);
int DrawText(
LPCTSTR lpString,// text to draw
int nCount,// text length
LPRECT lpRect,// formatting dimensions
UINT uFormat // text-drawing options
);
两个常用文字输出函数文本的输出
虚拟键代码虚拟键代码 功能键 虚拟键代码 功能键
VK_INSERT Insert VK_BANK 光标句柄
VK_LEFT 左箭头键 VK_RETURN 刷子句柄
VK_NEXT PageDown键 HPEN 画笔句柄
按键消息
--按下,WM_KEYDOWN,WM_SYSKEYDOWN
--释放,WM_KEYUP,WM_SYSKEYUP
--字符消息,WM_CHAR,WM_SYSCHAR
用鼠标进行输入
鼠标消息的产生:
客户区鼠标消息、非客户区鼠标消息按键 按下 释放左 WM_LBUTTONDOWN WM_LBUTTONUP
中 WM_MBUTTONDOWN WM_MBUTTONUP
右 WM_RBUTTONDOWN WM_RBUTTONUP
客户区鼠标消息
使用 ClassWizard向导添加鼠标消息
void OnLButtonDown(UNIT nFlags,Cpoint point);
void OnMouseMove(UNIT nFlags,Cpoint point);
void OnLButtonUp(UNIT nFlags,Cpoint point);
其中:
nFlags参数返回虚拟码,代表产生鼠标事件的鼠标键按键。键是否按下由 nFlags参数的特定位表示。
Point参数支出光标的当前位置。
鼠标画线示例程序分析
画线的函数
CPoint MoveTo(CPoint point);
CPoint LineTo(CPoint point);
客户区坐标系
画图的执行过程:
鼠标按下:记录起始点坐标鼠标移动:从起始点到当前点画线释放鼠标:从起始点到终点画一条线每一步都在对应事件中完成!!!