第3章 MFC基本应用程序的建立

时间:2025-05-01

Visual C++语言程序设计湖南涉外经济学院计算机软 件与理论教研室 主讲:李军

第3章 MFC基本应用程序的建立预备知识:Windows程序设计是基于事件驱动,程序的运行是由事件的发生来控 制的。消息驱动机制是Windows程序设计的精髓。 事件与消息 当用户按下一个键、移动鼠标或单击鼠标按钮时,计算机通知 Windows系统已经发生了一个事件,以及事件的种类、发生的时间和发 生的位置(如坐标值)。事件以如下三种方式产生: ● 通过输入设备,如键盘和鼠标,产生硬件事件。 ● 通过屏幕上可视的对象,如菜单、工具栏按钮、滚动条和对话 框上的控件。 ● 来自Windows内部,例如,当一个后面的窗口显示到前面来。 Windows消息是在Windows.h文件中用宏定义的常数。消息常数名 通常为WM_XXX,例如,WM_WUIT、WM_CHAR。

例如:当用户单击鼠标左键时,将发送WM_LBUTTONDOWN消 息,而双击则发送WM_LBUTTONDBLCLK消息。

消息驱动

DOS程序是由一系列预先定义好的操作序列的组合,具有一定的 开头、中间过程和结束,也就是程序直接控制程序事件和过程的顺 序。它的基本模型如图1-1(a)所示。 事件驱动的程序设计不是由事件的顺序来控制,而是由事件的 发生来控制,而这种事件的发生是随机的、不确定的,并没有预定 的顺序。 它在程序设计过程中除了完成所需功能之外,更多地考虑了用 户的各种输入,并根据需要设计相应的处理程序。程序开始运行时, 处于等待用户输入事件状态,然后取得事件并作出相应反应,处理 完毕又返回并处于等待事件状态。如图1-1(b)所示。

MFC基础VC++已集成了MFC库,VC++资源编辑器、AppWziard和ClassWizard明显 降低了应用程序编码的时间。AppWziard为整个应用程序生成框架代码,同 时ClassWizard为消息处理程序生成原型和函数体。

1.2.1 MFC类库简介MFC(Microsoft Foundation Class)类库是用来编写Windows应用程序的 C++类集,封装了大部分Windows API函数,所以使用MFC类库和VC++提 供的高度可视化的应用程序开发工具,使开发变得简单。 MFC类库包括CObject类及其派生类以及其他类。有这样一些重要的类(都 是CObject的派生类): ● 应用程序类CWinApp。● CWnd类及派生类。● CDocument及其派生类。 ● File Services 。 ● Graphical Drawing 。 ● Graphical Drawing Objects 。 ● Menus 。 ● ODBC Database 和 DAO Database Support 。 ● Internet Services。等等。

3.1.1 简单的Windows应用程序先来看一个最简单的Windows应用程序Ex_HelloMsg。 [例Ex_HelloMsg] 一个简单的Windows应用程序 #include <windows.h> int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MessageBox (NULL, "你好,我

的Visual C++世界!", "问候", 0) ; return 0 ; } 在Visual C++ 6.0运行上述程序需要进行以下步骤: (1) 选择“文件”→“新建”菜单命令,显示出“新建”对话框。在“工程”标签页面的列表框 中,选中Win32 Application项。 (2) 在工程编辑框中键入Win32应用程序项目名称Ex_HelloMsg。在“位置”编辑框中直 接键入文件夹名称,或单击浏览按钮选择一个已有的文件夹。 (3) 单击[确定]按钮继续。一个询问项目类型的Win32应用程序向导将被显示,选中An empty project项。单击[完成]按钮,系统将显示该应用程序向导的创建信息,单击[确 定]按钮系统将自动创建此应用程序。 (4) 再次选择“文件”→“新建”菜单命令,显示出“新建”对话框。在“文件”标签页面左边 的 列表框中选择C++ Source File项,在右边的文件框中键入Ex_HelloMsg.cpp,单击 [确定]按钮。

3.1.1 简单的Windows应用程序[例Ex_HelloMsg] 一个简单的Windows应用程序 (5) 输入上面的代码,运行程序,结果如图3.1所示。 从上面的程序可以看出: ● C++控制台应用程序以main函数作为进入程序的初始入口点,但在Windows应用程 序中,main主函数被WinMain函数取代。WinMain函数的原型如下: int WINAPI WinMain ( HINSTANCE hInstance, // 当前实例句柄 HINSTANCE hPrevInstance, // 前一实例句柄 LPSTR lpCmdLine, // 指向命令行参数的指针 int nCmdShow) // 窗口的显示状态

图3.1 Ex_HelloMsg运行结果

3.1.1 简单的Windows应用程序所谓句柄是一个标识Windows资源(如菜单、图标、窗口 等)和设备等对象的数据指针类型。通常,一个句柄变量 可用来对系统中某些资源的间接引用。 ●每一个C++ Windows应用程序都需要Windows.h头文件, 它还包含了其他的一些Windows头文件。这些头文件定 义了Windows的所有数据类型、函数调用、数据结构和 符号常量。 ●程序中,MessageBox是一个Win32 API函数,用来弹出 一个消息对话框。该函数第一个参数用来指定父窗口句柄, 即对话框所在的窗口句柄。第二、三个参数分别用来指定 显示的消息内容和对话框窗口的标题,最后一个参数用来 指定在对话框中显示的按钮。

3.1.1 简单的Windows应用程序[例Ex_HelloWin] 一个完整的Windows应用程序 #include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); // 窗口过程 int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HWND hwnd ; // 窗口句柄 MSG msg ; // 消息 WNDCLASS wndclass ; // 窗口类 wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra =0; wndclass.cbWndExtra =0; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclas …… 此处隐藏:3905字,全部文档内容请下载后查看。喜欢就下载吧 ……

第3章 MFC基本应用程序的建立.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219