- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章 WINDOWS编程
第章 Windows编程
Windows是应用于微机上的图形化用户界面的操作系统。它为应用程序提供了一个由一致窗口和菜单结构构成的多任务环境。
熟悉DOS环境下的软件开发的程序员很快就会发现,Windows编程与DOS环境下的编程相比有很大的不同。在用Visual C++开发Windows应用程序时,主要使用两种方法,一种是使用Windows提供的Windows API函数;另一种是直接使用Microsoft提供的MFC类库。
API是应用程序编程接口(application programming interface)的缩写,Windows API是Windows系统和Windows应用程序间的标准程序接口。API为应用程序提供系统的各种特殊函数及数据结构定义,Windows应用程序可以利用上千个标准API函数调用系统功能。API程序设计较繁琐,需要注册窗口类、编写消息循环,用繁琐的Switch/Case处理消息。另外,API程序设计较少体现面向对象的程序设计方法,程序的可重用性较差。
MFC类库,封装了Windows的API、USER、KERNEL、GDI函数,定义了大量的类,完成了Windows程序所需的大部分功能。程序员可以从这些类中派生自己的类,继承这些类的功能,并加上所需的特殊功能。隐去了创建、维护窗口的许多复杂的例行工作。使用MFC编程,可以利用MFC提供的大量类,花费较少的程序设计工作量,是使用最广泛的程序设计方法之一。
1 用API编写Windows应用程序
为理解如何用Windows API进行Windows编程,下面首先建立一个最简单的Windows应用程序。
【例1】在Visual C++中,打开File\News Projects,然后在列表中选择Win32 Application,在Project Name编辑框中输入工程文件名Demo1,在Location中指定应用程序创建的位置,单击OK按纽弹出Win32 Application Step1-1对话框,选择An empty project,最后单击Finish按纽完成程序项目的建立。再次打开File|New|File,然后在列表中选择C++ Source File,选中Add to Project复选框,在File name编辑中输入文件名Demo1,系统创建并打开Demo1.cpp。
输入如下代码:#include windows.h
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine,int iCmdShow)
{
MessageBox(NULL,TEXT(你好,欢迎来到Visual C++),TEXT(Welcome),0);
return 0;
}
编译运行程序,结果如图所示。可以看到,如同在DOS中用语言编程一样,程序包含一个头文件windows.h,只是Windwos下的主函数变成了WinMain()函数。MessageBox()是Windows一个很常用的API,用于显示指定信息。
为进一步理解Windows程序的编写,再举一例。
【例2】#includewindows.h
//窗口函数说明
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
//以下初始化窗口
int WINAPI WinMain( HINSTANCE hInstance, //WinMain函数说明
HINSTANCE hPrevInst,
LPSTR lpszCmdLine,
int nCmdShow )
{
HWND hwnd;
MSG Msg;
WNDCLASS wndclass;
char lpszClassName[]= 窗口; //窗口类名
char lpszTitle[]=My_Windows; //窗口标题名
//窗口类的定义
wndclass.style=0; //窗口类型为默认类型
wndclass.lpfnWndProc=WndProc;//窗口处理函数为WinProc
wndclass.cbClsExtra=0;//窗口类无扩展
wndclass.cbWndExtra=0;//窗口实例无扩展
wndclass.hInstance=hInstance;//当前实例句柄
//窗口的最小化图标为默认图标
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICAT
文档评论(0)