欢迎来到天天文库
浏览记录
ID:33913039
大小:71.89 KB
页数:8页
时间:2019-03-01
《孙鑫visualc视频学习总结lesson1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、LESSON1WINDOWS程序内部运行原理操作系统所能够完成的每一个特殊功能通常都有一个函数与其对应,也就是说,操作系统把它所能够完成的功能以函数的形式提供给应用程序使用,应用程序对这些函数的调用就叫做系统调用,这些函数的集合就是Windows操作系统提供给应用程序编程的接口(ApplicationProgrammingInterface),简称WindowsAPI消息机制操作系统将每个事件都包装成-个称为消息的结构体MSG来传递给应用程序typedefstructtagMSG{HWNDhwn
2、d;UINTmessage;WPARAMwParam;LPARAMIParam;DWORDtime;POINTpt;}MSG;句柄HWND操作系统要管理和操作这些资源,都是通过句柄来找到对应的资源。按资源的类型,又可将句柄细分成图标句柄(HICON),光标句柄(HCURSOR),窗口句柄(HWND),应用程序实例句柄(HINSTANCE)等等各种类型的句柄。操作系统给每一个窗口指定的一个唯一的标识号即窗口句柄。消息messageWindows消息一般以WM_开头,例如WM_KEYDOWNWPAR
3、AM、LPARAM指定消息的附加信息,比如说按键消息中按下键的ASCII值就存放在WPARAM中time表示消息投递时候的时间POINTtypedefstructtagPOINT{LONGx;LONGy;}POINT,APPOINT;当消息投递的时候,光标在屏幕上面的位置WinMain函数windows程序的入口函数//handietocurrentinstanee//handletopreviousinstance//commandline//showstateintWINAPIWinMain
4、(HINSTANCEhInstance,HINSTANCEhPrevTnstance,LPSTRIpCmdLinc,intnCmdShow);HINSTANCE实例,例如当你运行一个窗口,这个窗口就是一个实例IpCmdLine命令行参数,例如DOS下输入命令notepadl.txt,l.txt就是命令行参数nCmdLine指定程序窗口显示状态:最大化、最小化等创建一个完整的窗口的步骤:1・窗口类的设计typedefstruct_WNDCLASS{UTNTstyle;WNDPROClpfnWndP
5、roc;intcbClsExtra;intcbWndExtra;HINSTANCEhlnstanee;HTCONhTcon;HCURSORhCursor;HBRUSHhbrBackground;LPCTSTRIpszMenuName;LPCTSTRIpszClassName;}WNDCLASS,*PWNDCLASS;style窗口的样式,比如水平重画和垂直重画WNDPROC指定了这一类型窗口的过程函数,也称为回调函数。回调函数的原理是这样的,当应用程序收到给某一窗口的消息时,就应该调用某一函数來
6、处理这条消息。这一调用过程不用应用程序口己来实施,而由操作系统来完成,但是,回调函数本身的代码必须由应用程序口己完成。对于一条消息,操作系统到底调用应用程序屮的哪个函数(回调函数)来处理呢?操作系统调用的就是接受消息的窗口所属的类型中的lpfnWndProc成员指定的函数。每一种不同类型的窗口都有自己专用的回调函数,该函数就是通过lpfnWndProc成员指定的。cbClsExtra为每一个类指定一定字节数的附加内存空间,一般设为0cbWndExtra为每一个窗口指定一定字节数的附加内存空可,一
7、般设为0HINSTANCE当前程序实例号HICON图标句柄,赋值:HICONLoadicon(HINSTANCEhlnstance,//handietoapplicationinstaneeLPCTSTRIpTconName//namestringorresourceidentifier);若是使用windows标准图标,则HINSTACE设为NULLLPCTSTR为图标值HCURSOR光标句柄,同HICON,LoadCursor()HBRUSH画刷句柄HGDIOBJGetStockObject
8、(intfnObject//stockobjecttype);返回stockpens,brushes,fonts,orpalettes的句柄LPCTSTR菜单名称LPCTSTR类名称2•注册窗口类ATOMRegisterClass(CONSTWNDCLASS^lpWndClass//窗口类指针);3•创建窗口首先定义一个句柄来保存窗口HWNDCreateWindow(//己注册的类名//窗口标题栏显示的名字//窗口的类型//窗口的水平坐标//窗口的竖直坐标//窗口宽度〃窗口高度//父窗口的句柄/
此文档下载收益归作者所有