2022年VisualC++基础入门教程-:程序框架 .pdf

上传人:C****o 文档编号:39747764 上传时间:2022-09-07 格式:PDF 页数:8 大小:61.45KB
返回 下载 相关 举报
2022年VisualC++基础入门教程-:程序框架 .pdf_第1页
第1页 / 共8页
2022年VisualC++基础入门教程-:程序框架 .pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2022年VisualC++基础入门教程-:程序框架 .pdf》由会员分享,可在线阅读,更多相关《2022年VisualC++基础入门教程-:程序框架 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Windows 窗口华丽大方,框架组成也很复杂,一般来说一个应用程序往往包括以下组成部分:1、基本 窗口包括标题栏和四个边框构成的工作区,这是程序的基本框架,所有显示的文字、图片、对话框都是在这个窗口框架当中显示,如果这个窗口关闭,那么相应的所有内容也都会关闭,有时也称作“父窗口”;2、程序 菜单、显示的文字、图片、弹出式对话框这些都是作为程序使用到的资源;3、基于 对话框上所显示的标签、文本框、列表框、滚动条等等称作是控件,它们可以完成一些特定的功能,它们不能独立存在;4、键盘、显示器是输入输出设备,归 Windows系统管理,应用程序使用之前需要向系统 申请;5、程序 的启动、运行,各个组

2、件之间,是通过“消息”相互沟通的,程序启动后会自动发出一个“创建”消息,向系统申请 内存、调入资源、构建程序窗口;比较常见的是鼠标消息,鼠标单击、双击或者移动什么的,都会发送 出相应的消息,程序就会 显示 一小段文字提示,要不就是按钮弹起来按下去等等,有的消息 系统 帮着处理了,有的消息就得程序自己 动手处理;下面我们来创建一个较为完整 的应用程序窗口:1、启动 VC,新建一个名为“SmlWin”的 Win32 Application工程,工程位置在 自己的文件夹中;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -2、新建 一个名为“SmlWin”的头文件,方法是单击“

3、新建”命令,在左边选择C源程序 上面的 C/C Header File,再在 右边空白“文件”名称输入SmlWin,单击“确定”,头文件包含源程序文件用到的函数申明,输入下面的代码(绿色部分是注释,必须以双斜杠“/”开头,先可以不输入),有的一行太长会自动折到下一行,代码先抄到 本子上,或者打印出来,注意 I 和 l两个字母不同,代码使用缩进 格式,规范化;/代码开始/申明一些源程序(SmlWin.cpp)中用到的函数原型;/申明和定义分开,互不干扰,定义在源程序中;/定义好的函数,在WinMain主函数中调用;LRESULT CALLBACK MainWndProc(HWND,UI NT,W

4、PARAM,LPARAM);/申明一个消息处理函数BOOL I nitApplication(HI NSTANCE);/申明一个初始化窗口的函数BOOL I nit I nstance(HI NSTANCE,int);/申明一个创建窗口的函数char *myStr=拉开窗帘,阳光照射进来。;/申明并定义一个用到的字符串3、新建 一个名为“SmlWin”的 C源程序文件,单击“确定”进入文本区输入下面的程序:/程序名:SmlWin.cpp 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -/用途是:显示一个简单窗口/包含头文件*.h#include/运行在 Windows系

5、统下#include/用到字符串#include SmlWin.h/函数的申明HI NSTANCE h I nst;/申明当前实例句柄HWND hWndMain;/申明主窗口句柄/函数名:WinMain(HINSTANCE,HINSTNCE,LPSTR,int)/用途是:程序入口,调用初始化函数,处理消息循环,/int APIENTRY WinMain(/主函数有四个参数HINSTANCE hInstance,/当前实例句柄HINSTANCE hPrevInstance,/前一实例句柄LPSTR lpCmdLine,/命令行字符串int nCmdShow)/窗口显示方式/函数头结束,开始定义函

6、数MSG msg;/申明一个消息,消息是结构变量;/调用函数,初始化窗口数据,并注册窗口类;if(!InitApplication(hInstance)/调用 InitApplication函数MessageBox(NULL,InitApplication函数错误,提示,MB_OK);/用于调试,找出程序没反应的错误return (F ALSE);名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -/调用函数,创建和显示窗口;if(!InitInstance(hInstance,nCmdShow)/调用 InitInstance函数return (F ALSE);/进入消息

7、循环,从应用程序消息队列中检取消息;while (Get Message(&msg,NULL,0,0)/把虚拟键消息翻译为字符消息;TranslateMessage(&msg);/把消息分配到相应的窗口过程中去;Dispatch Message(&msg);return (msg.wParam);/返回附加的消息/*下面是定义要用到的函数,定义了主函数才能调用*/函数名:InitApplication(HINSTANCE)/用途是:供主函数用,初始化窗口,并注册窗口/BOOL Init Application(HINSTANCE hInstance)/当前实例句柄/窗口类定义WNDCLASSS

8、mlWin;/定义一个WNDCLASS 结构对象SmlWin;SmlWin.style=0;/对象的基本窗口风格名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 8 页 -SmlWin.lpfnWndProc=(WNDPROC)MainWndProc;/处理消息的函数SmlWin.cbClsExtra=0;/分配给窗口类结构之后的额外字节数SmlWin.cbWndExtra=0;/分配给窗口实例后的额外字节数SmlWin.hInstance=hInstance;/标识窗口过程所在的实例SmlWin.hInstance=hInstance;/标识窗口过程所在的实例SmlWin.hIc

9、on=LoadIcon(hInstance,IDI_APPLICATION);/加载图标SmlWin.hCursor=LoadCursor(NULL,IDC_ARROW);/标识类的鼠标指针SmlWin.hbrBackground=(HBRUSH)(14);/蓝色窗口/填充背景色用(HBRUSH)强制转换数据类型;SmlWin.lpsz MenuName=NULL;/无菜单SmlWin.lpszClassName=SmlWinWClass;/标识本类名称的字符串return (RegisterClass(&SmlWin);/注册窗口类/函数定义完毕,下面是另一个定义/函数名:InitIstan

10、ce(HINSTANCE,int)/用 途:供主函数用,初始化窗口的各个属性/BOOL InitInstance(/有两个参数;HINSTANCE hInstance,/一个是实例句柄,int nCmdShow)/另一个是窗口的显示方式;hInst=hInstance;/保存当前实例句柄,供其他函数调用,hInst 是一个全局变量在WinMain函数之前定义名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 8 页 -hWnd Main=CreateWindow(/调用 API 函数SmlWinWClass,/上一个函数定义的窗口类名称蓝色荡漾,/窗口标题WS_OVERLAPPEDW

11、INDOW,/创建标题栏的风格CW_USEDEFAULT,CW_USEDEFAULT,/默认的窗口位置(x,y)CW_USEDEFAULT,CW_USEDEFAULT,/默认的窗口大小(宽度,高度)NULL,/父窗口句柄NULL,/当前菜单句柄hInstance,/当前实例句柄NULL);/创建窗口的大小if(!hWndMain)/判断是否成功创建窗口,判断hWndMain句柄的值return (FALSE);ShowWindow(hWndMain,nCmdShow);/显示窗口/hWndMain是指定要显示窗口的句柄/nCmdShow是从 WinMain()函数的 nCmdShow传递来的显

12、示方式UpdateWindow(hWndMain);/更新窗口客户区return (TRUE);/返回值 TRUE/函数名:MainWndProc(HWND,UINT,WPARAM,LPARAM)/用途是:处理窗口消息/LRESULT CALLBACK MainWndProc(/有四个参数 HWND hWnd,/窗口句柄名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 8 页 -UINT message,/消息类型WPAR AM wParam,/消息附带信息LPARAM lParam)/消息附带信息 HDC hdc;/需要显示器设备来显示文本PAINTSTRUCT ps;/使用设备

13、的方法switch(message)/需要自己处理的消息 case WM_PAINT:/接收 WM_PAINT消息,本消息自动产生hdc=BeginPaint(hWnd,&ps);/申请设备TextOut(hdc,20,30,myStr,lstrlen(myStr);/myStr 已经在头文件SmlWin.h 中定义为字符串EndPaint(hWnd,&ps);/结束设备使用 break;/本条消息处理完毕,case WM_DESTROY:/退出应用程序,PostQuit M essage(0);/向系统发送一条WM_QUIT消息,break;default:/让系统帮着处理的消息return

14、 (DefWindowProc(hWnd,message,wParam,lParam);return(0);/函数返回值/代码结束名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 8 页 -记着 经常 保存,输入完成后单击“编译条”上的构建按钮,检查一下是否有错误,注意拼写错误、字母大小写,一句结束的分号,和使用英文标点符号,大括号的配对,修改后及时保存,“构建”通过以后再单击“执行”按钮,看看倾注自己心血的程序窗口;本节 学习了应用程序的框架结构,可以看出有四个部分:主函数WinMain、初始化函数 Init、创建函数InitInstance和消息函数MainWndProc,Application如果你成功地完成了练习,理解了窗口的各个组成代码,请继续学习下一课内容;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 8 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁