C语言Windows程序设计-第三天-属于自己的窗口

C语言Windows程序设计-第三天-属于自己的窗口

ID:47754947

大小:68.51 KB

页数:8页

时间:2019-10-15

C语言Windows程序设计-第三天-属于自己的窗口_第1页
C语言Windows程序设计-第三天-属于自己的窗口_第2页
C语言Windows程序设计-第三天-属于自己的窗口_第3页
C语言Windows程序设计-第三天-属于自己的窗口_第4页
C语言Windows程序设计-第三天-属于自己的窗口_第5页
资源描述:

《C语言Windows程序设计-第三天-属于自己的窗口》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、创建属于自己的窗口================== ·创建窗口前的准备 在创建窗口前我们先来熟悉几个名词, 这些名词现在可以暂时不去透彻的进行理解, 只需要印象中知道有这么回事就行。 1>. 窗口  "窗口"这个我们都已经十分熟悉了, 在Windows中, 一个应用程序窗口上一般会在标题栏上显示程序的名称, 紧挨着标题栏的菜单栏, 或许还会有状态栏、滚动条等其他"装饰品"。 2>. 控件   在一些应用程序中, 我们经常可以在程序的界面上(窗口)看到一些按钮(Push Button)、文本框(Text Box)、列表框(List Box)、滚动条(Scroll Bar)等, 

2、这些对象通常被称为控件, 在《Windows程序设计》一书中, 还被称为"子窗口"、"控件窗口"或"子窗口控件"。 3>. 窗口类  在建立一个窗口前, 我们必须首先注册一个"窗口类"(Windows Class), 接触过面向对象的朋友应该会首先想到面向对象当中的"类", 但是, 这里"窗口类"中的"类"并不是指面向对象当中的那个"类"。  在这里我们可以把"窗口类"理解为一个结构体, 结构体的成员就是窗口的一些属性, 例如窗口的标题是什么、窗口使用什么样的小图标以及窗口的风格之类的属性, 一个窗口就是一个结构体的对象, 结构体成员的属性决定着窗口的属性。 4>. 消息循环  

3、在Windows程序设计中, 消息循环是个不得不提的概念, Windows操作系统是以消息驱动的, 消息队列是指在一个应用程序运行时, Windows操作系统会为该应用程序建立一个"消息队列", 这个消息队列用来存放该程序可能创建的各种窗口的消息, 当用户对应用程序进行操作时, 例如点击一个按钮、调整下窗口的大小等, 此时Windows会立即把这一消息告诉应用程序, 使应用程序能作出相应的动作。  笔者觉得有比较强调一下上一段中的最后一句"此时Windows会立即把这一消息告诉应用程序, 使应用程序能作出相应的动作。", 我们在创建一个应用程序时, 不用想着什么时候才能从用户那得

4、到指令, 因为操作系统会即时告诉我们用户此时是否对程序进行了操作, 对于没有接触过Windows编程的朋友们这点可能有点难以理解, 简单来说就是像如何获取一个按钮是否被单击, 或者如何获取用户此时是否在调整窗口大小之类的代码Windows已经帮我们完成了, 我们只需要等待着Windows给我们发消息就行, 如何判断消息类型以及处理这些消息, 在代码上通常我们用while配合一个巨大的switch来完成,。 5>. 窗口的过程函数  当一个窗口建立之后, 就可以从Windows那里不断的接收到Windows发来的消息, 接收到消息后我们就需要一个函数来处理这些消息, 可以简单的理解

5、为, 这个用来处理接收到的消息的函数就称为窗口过程函数或者回调函数。 下面我们来尝试着看一个创建一个基本窗口的代码。 ·尝试创建自己的窗口代码如下:#includeLRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);//声明用来处理消息的函数intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,PSTRszCmdLine,intiCmdShow){staticTCHARszAppName[]=TEXT("MyWindow");HWNDhwnd;MSGm

6、sg;WNDCLASSwndclass;//声明一个窗口类对象//以下为窗口类对象wndclass的属性wndclass.style=CS_HREDRAW

7、CS_VREDRAW;//窗口样式wndclass.lpszClassName=szAppName;//窗口类名wndclass.lpszMenuName=NULL;//窗口菜单:无wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景颜色wndclass.lpfnWndProc=WndProc;//窗口处理函数wndclass.cbWndExtra=

8、0;//窗口实例扩展:无wndclass.cbClsExtra=0;//窗口类扩展:无wndclass.hInstance=hInstance;//窗口实例句柄wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//窗口最小化图标:使用缺省图标wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);//窗口采用箭头光标if(!RegisterClass(&wndclass)){//注册窗口类,如果注册失败弹出

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。