没有合适的资源?快使用搜索试试~ 我知道了~
MFC考试简要 编程
需积分: 0 5 下载量 69 浏览量
2010-06-23
19:01:49
上传
评论
收藏 729KB DOC 举报
温馨提示
试读
64页
GUI的概念:Graphical User Interface=图形用户界面,是计算机的一种人机接口。 组成:由图形显示设备(屏幕)和指示跟踪设备(鼠标、跟踪球、光笔/手写笔、触摸屏)组成,用户可通过指示设备来操作图形设备上的界面元素(窗口、菜单、对话框、图标)以完成各种工作。 优点:与DOS等基于命令行的字符界面的OS相比,GUI形象直观、使用方便、人性化,不需记忆各种命令和参数,各种应用软件之基本功能的操作一致或相似。有大量API供程序员调用,图形界面的编程相对DOS要简单。
资源详情
资源评论
资源推荐
第 1 章 绪论
图形用户界面 (GUI= Graphical U ser I nterface ) 的概念、组成与优点
GUI 的概念:Graphical User Interface=图形用户界面,是计算机的一种人机接口。
组成:由图形显示设备(屏幕)和指示跟踪设备(鼠标、跟踪球、光笔/手写笔、触摸屏)组成,用
户可通过指示设备来操作图形设备上的界面元素(窗口、菜单、对话框、图标)以完成各种工作。
优点:与 DOS 等基于命令行的字符界面的 OS 相比,GUI 形象直观、使用方便、人性化,不需记忆
各种命令和参数,各种应用软件之基本功能的操作一致或相似。有大量 API 供程序员调用,图形界面的编
程相对 DOS 要简单。
Windows
的特点、
GDI
的概念与特点
Windows 的主要特点有:面向对象、消息/事件驱动、多任务、图形设备接口 GDI 与设备无关。
GDI 概念:Graphics Device Interface=与设备无关的图像设备接口。
特点:应用程序可使用同一函数,可在不同的打印机和显示器上输出同一个图形。
Windows
编程的特点
1.面向对象的编程思想
2.消息/事件驱动的程序结构
3.资源共享与数据交换
4.与设备无关 GDI 编程
5..NET
Windows 编程的语言工具选择
小型/应用软件 Visual Basic
大型/系统软件 Visual C++
通用/数据库软件 Delphi (Pascal) / PowerBuilder
网络/安全软件 Java
Web/XML 软件 Java / Visual C#
Windows API 编程的步骤、入口函数和程序结构
SDK (Software Development Kit 软件开发工具包)
API(Application Program Interface 应用程序接口)
步骤:
运行 VS
创建新项目
编写源代码(也可以直接将已有的源文件加到项目中)
编译、连接并运行
入口函数:
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // pointer to command line
int nCmdShow // show state of window
);
窗口类结构:
typedef struct _WNDCLASS {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HANDLE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS;
MFC
的概念、特点与优势
MFC 的概念:Microsoft Foundation Class Library = 微软基础类库,是 Windows API 的 C++类封装,用
于 VC 的 Windows 编程。
MFC 封装了 Windows SDK 的结构、功能、应用程序框架等内部技术,屏蔽了重复繁琐的实现细节,
简化了程序员的工作。
主要的
MFC
类及其功能
(1) 根类 CObject
CObject 类可提供下列基础服务:
序列化(Serialization 把对象存入文件/从文件中提取对象)支持
在运行时的类信息(识别对象的类型)
对象诊断信息输出
与类组(collection classes)的兼容性
(2) 应用程序构架类(Application Architecture Classes)
CCmdTarget(命令目标)类是 MFC 中所有可接收和响应消息对象类的基类,CWinApp、CDocument
和 CWnd 都是从它派生的。
CWinApp(Windows 应用程序)类是应用程序的入口主程序类(其中封装并隐藏了 WinMain 函数),
负责初始化和运行应用程序。
CDocument(文档)类对应于用户文件,支持对文件的创建、装入和保存。
CWnd(窗口)类是所有窗口的基类。
(3) 窗口类 CWnd
CWnd 类是从 CCmdTarget 类派生的窗口基类,它封装了一个窗口句柄,定义了消息处理机制,并提
供了操作窗口所必须的成员函数。
(4) 图形绘制对象类 CGdiObject
CGdiObject 类(图形设备接口对象)提供大量 GDI 函数,可用于其各种派生类中,如:CPen(画
笔)、CBrush(画刷)、CFont(字体)、CBitmap(位图)、CPalette(调色板)、CRng(绘图区域)
(5) 设备上下文类 CDC
设备上下文(DC = Device-Context 设备环境/设备描述表)是由 GDI 管理的数据结构,直接从 CObject 派
生的 CDC 是 DC 的封装,保存着(显示/打印)设备的属性和绘图工具,并提供了多种简单图形的绘制函
数。
(6) 其他类
直接从 CObject 派生的常用类还有:CFile(文件)、CMenu(菜单)。
不是从 CObject 派生的独立类中常用的有:CArchive (存档)、CPoint (点)、 CRect (矩形)、
CSize(尺寸)、CString(串)、CTime(时间)等
最简单的
MFC
程序
// Hello.cpp
#include <afxwin.h> // MFC 头文件
class CHelloApp : public CWinApp { // 应用程序类
virtual BOOL InitInstance(); // 初始化实例虚函数
};
BOOL CHelloApp::InitInstance() { // 初始化应用程序实例的成员函数
CFrameWnd *pFrmWnd = new CFrameWnd(); // 创建框架窗口对象
pFrmWnd->Create(NULL, L"Hello world!"); // 创建框架窗口
m_pMainWnd = pFrmWnd; // 将该框架窗口作为应用程序的主窗口
pFrmWnd->ShowWindow(m_nCmdShow); // 显示主窗口
return TRUE;
}
CHelloApp theApp; // 唯一的 CSHelloApp 对象
第 2 章 界面程序设计
Windows
操作系统的基本界面元素
Windows 是一种具有 GUI 的操作系统,GUI 包括:窗口、菜单、对话框和控件等基本界面元素,及
MFC 提供的工具栏和状态栏等组合控件,还有键盘、鼠标等消息响应与事件驱动。
菜单设计的一般步骤
1:打开菜单编辑器
2:编辑菜单
3:联接菜单快捷键
4:响应菜单项
动态灰化
/
禁止
/
激活菜单项
可用 CMenu 的成员函数
UINT EnableMenuItem( UINT nIDEnableItem, UINT nEnable );
来灰化/禁止/激活菜单项。其中
参数 nEnable 可取值:MF_DISABLED、MF_ENABLED 或 MF_GRAYED,及与 2)中类似的参
数 MF_BYCOMMAND 或 MF_BYPOSITION
参数 nIDEnableItem 的含义与取值同 2)中的
返 回 值 : 为 调 用 此 函 数 时 菜 单 项 的 激 活 状 态 , 可 为 MF_DISABLED 、 MF_ENABLED 或
MF_GRAYED。若指定的菜单项不存在,则返回 0xFFFFFFFF(-1)
afx_msg void OnUpdateNameLs(CCmdUI* pCmdUI);
ON_UPDATE_COMMAND_UI(ID_NAME_LS, OnUpdateNameLs)
void CStudentView::OnUpdateNameLs(CCmdUI* pCmdUI) {
pCmdUI->Enable(FALSE);
pCmdUI->SetCheck(TRUE);
}
(独立的)CCmdUI 类的常用成员函数有:
virtual void Enable( BOOL bOn = TRUE ); // 禁止/激活
virtual void SetCheck( int nCheck = 1 ); // 已选中/未选中
virtual void SetText( LPCTSTR lpszText ); // 设置菜单项文本串
工具条与状态条的概念、组成与功能
工具条/栏(tool bar)和状态条/栏(status bar)是构建友好 GUI 程序的通用标准,但它们并不是 Windows
API 的标准部件,而是由应用程序框架(MFC)增加的一类控件。
工 具 条 是 CToolBar 类 的 对 象 , 状 态 条 是 CStatusBar 类 的 对 象 , 这 两 个 类 都 是 控 制 条
(栏)CControlBar 的派生类,而 CControlBar 类又是从 CWnd 类派生的
工具条由若干可分组的图形按钮组成,在应用程序中单击一个按钮后,会像菜单项和快捷键一样发
送一个命令消息(一般对应于一个菜单项消息)。可以响应 UI 消息来改变按钮状态和图形。
状态条既不接受用户输入,也不产生命令消息,只能显示提示/状态信息和其他文本串。状态条窗口
由若干文本窗格(pane)组成,窗格分成两类:消息行窗格和状态指示窗格。若想在状态条中显示应用程序
数据,则必须禁用标准的状态条。
对话框的分类,各类对话框的特点
(1) 模式对话框与无模式对话框
按工作方式不同,可将对话框分成两类:
模式对话框(modal dialog box 模态对话框):在关闭模式对话框之前,该程序不能进行其他工作(如
“打开文件”对话框)
无模式对话框(modeless dialog box 非模态对话框):模式对话框打开后,该程序仍然能够进行其他工作
(如“查找与替换”对话框)
(2) 公用对话框与用户对话框
按编程方式不同,还可将 Windows 对话框分成两类:
公用对话框(common dialog boxes 通用/公共对话框):Windows 提供的一组标准用户接口对话框,包括
文件、颜色、字体、查找替换、页面设置、打印等对话框。公用对话框的资源与处理代码被封装在动态连
接库文件 comdlg32.dll 中,该文件一般放在 Windows 系统安装目录下的 system32 子目录中,可供所有的
Win32 应用程序调用。
用户对话框(user dialog box):用户自己创建的对话框,对话框的资源与处理代码都由程序员自己来编写。
创建和使用自定义用户模式对话框的主要步骤
创建对话框资源:使用对话框编辑器创建对话框资源(如添加各种控件,调整控件的大小与位
置,设置控件的 ID 与内容)
创建对话框类:使用“MFC 类向导”对话框创建 CDialog 的派生类,并将它与已经创建对话框资
源 ID 相关联
添加类变量:使用“添加成员变量向导”对话框向派生的对话框类中添加成员变量
添加消息处理:使用“事件处理程序向导”为对话框中的(按钮和编辑框等可生成事件的)控件
添加消息处理函数,编写处理代码
初始化:在用户对话框类的 OnInitDialog 函数中,对对话框中的控件做初始化设置,主要是设
置应用程序的各种输入和选择参数的初值
接受用户输入:在用户对话框类的 OnOK 虚拟成员函数(用户按对话框中的“确定”钮[IDOK]退
出对话框时调用)中,编写接受各种输入和选择参数的代码
使用对话框:在视图类中的需要处,创建对话框对象,用其成员函数 DoModal 打开对话框
常用的公用对话框及其对应的
MFC
类
CFileDialog:文件对话框类
CColorDialog:颜色对话框类
CFontDialog:字体对话框类
CFindReplaceDialog:查找替换对话框类
CPageSetupDialog:页面设置对话框类
CPrintDialog:打印对话框类
打开文件公用对话框的使用编码
void CStudentView::OnDlgFile()
{
// TODO: 在此添加命令处理程序代码
wchar_t *filters = L"位图文件(*.bmp)|*.bmp|可交换图形格式文件(*.gif)|*.gif|\
联合图像专家组文件(*.jpg;*.jpe)|*.jpg;*.jpe|所有文件(*.*)|*.*||";
CFileDialog fileDlg(TRUE, L"bmp", L"*.bmp", OFN_HIDEREADONLY, filters);
if (fileDlg.DoModal() == IDOK) {
/*m_sFileName = fileDlg.GetPathName();
SetDlgItemText(IDC_FILENAME, m_sFileName);
CFile file;
VERIFY(file.Open( m_sFileName, CFile::modeRead ) );
file.Close();*/
}
}
MFC 的常用控件类及其功能
CStatic(静态文本):一种静态显示的窗口,一般用于标注(label)——显示静态文本串。
它不能接受鼠标和键盘输入,也不能向其父窗口(对话框等)发送 WM_COMMAND 消息。
静态控件有时也作为图片框,在其中显示图像
CEdit(编辑控件):一种可编辑文本的窗口,用于接受用户的文本输入。在该类中,提
供 了 大 量 的 文 本 编 辑 函 数 及 通 知 消 息 的 响 应 接 口 。 如
Copy 、 Cut 、 Paste 、 Clear 、 Undo 、 SetSel 、 ReplaceSel 、 Get
Sel、GetLine,ON_EN_CHANGE(改变 OnChange*)、ON_EN_SETFOCUS(获得输入焦点
OnSetfocus*)、ON_EN_KILLFOCUS(失去输入焦点 OnKillFocus*)。
CButton(按钮):用于执行命令。MFC 在该类中为按钮(pushbutton)、复选框和单选钮
提供编程接口。按钮控件有两个主要的通知消息:ON_BN_CLICKED(单击 OnBnClicked*)
和 ON_BN_ DOUBLECLICKED(双击 OnDoubleclicked*)
复选框(check box 核对盒):可选中(TRUE 设置状态)或不选(FALSE 取消设置状态)。在一
组复选框中,可以有多个复选框被选中,也可以一个复选框都不选,没有排他性
单选钮(radio button 收音机钮):也可选中(TRUE 设置状态)或不选(FALSE 取消设置状态),
但在一组单选钮中,每次只能有一个单选钮被选中,且必须有有一个被选中,具有排他性
CListBox(列表框):显示一串项目列表供用户查看和选择。常用函数有: GetSel /
SetSel、GetCurSel / SetCurSel、AddString / InsertString / DeleteString 等
CComboBox(组合框):是编辑框与列表框的组合。用户可在编辑框内输入和选择表项 ,
也可从列表框中选择表项,编辑框会显示选中的表项。有三种风格的组合框:
简单组合框(CBS_SIMPLE):列表始终可见
下拉组合框(CBS_DROPDOWN):列表只是在下拉时可见,编辑框可编辑
下拉表组合框(CBS_DROPDOWNLIST):列表也只是在下拉时可见,但编辑框不可编辑
其他比较常用的控件类有:CProgressCtrl(进度控件类)、CSliderCtrl(滑块控件类)、
CSpinButtonCtrl(翻滚按钮控件类)、CTabCtrl(选卡控件类)和 CTreeCtrl(树形控件
类)等,
获取控件的
CWnd
指针、获取和设置控件中的整数和文本串的
CWnd
成员函数的原型
获取控件的 CWnd 指针:CWnd* GetDlgItem( int nID ) const;
获取和设置控件中的整数和文本串的 CWnd 成员函数的原型
剩余63页未读,继续阅读
haoxin123456789
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0