VC定义全局变量和消息机制

VC定义全局变量和消息机制

ID:37713476

大小:32.50 KB

页数:11页

时间:2019-05-29

VC定义全局变量和消息机制_第1页
VC定义全局变量和消息机制_第2页
VC定义全局变量和消息机制_第3页
VC定义全局变量和消息机制_第4页
VC定义全局变量和消息机制_第5页
资源描述:

《VC定义全局变量和消息机制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、全局变量一般这样定义:1。在一类的.cpp中定义intmyInt;然后再在要用到的地方的.cpp里externintmyInt;这样就可以用了。2。在stdafx.cpp中加入:intmyInt;然后在stdafx.h中加入:externintmyInt这样定义以后无论在什么文件中都是可见的.3。比较规范的是,先定义一个Glbs.h,把所有的全局变量原始定义放进去。然后定义一个Externs.h,把你先前定义在Glbs.h中的变量都加上extern。注意:如果你在Glbs.h中设置了初值,那么在Externs.h中就不要加值了。然后调用时,第一次调用的#include,以后

2、调用的#include另:问:如何在VC++中使用全局变量,以使文档中的所有类都能访问。  答:把该变量放到该应用程序类的头文件中的attribute处。然后,在程序的任何地方,你都可以用下面的方法来访问该变量:  CMyApp*app=(CMyApp*)AfxGet-App();  app->MyGlobalVariable=…  用这个方法,不但可以定义全局变量,也可以定义全局对象。  例如:  MyClassMyObject;  CMyApp*app=(CMyApp*)AfxGet-App();  app->MyObject.MyFunction(); VC中使

3、用全局变量的2种办法及防错措施   1.对于全局变量存在和函数一样的问题,为了在其他CPP文件中能够访问这些变量,必须在主文件的H文件中加上extern声明,格式如下:externvaribletypevar;(声明)在主文件的CPP文件中定义varibletypevar;(定义)例子:AppWizard建立一个Test工程那么在Test.h中声明externCStringcs;在Test.app定义CStringcs;  如果要定义整个工程的全局变量,在任何一个CPP文件中进行定义,然后在需要引用这个变量的文件中进行声明。如全局变量很多可以选择使用定义全局变量的。h文件,在需要的地方直接

4、include头文件即可,不需要写那么多extern了。2.应用程序类的主头文件处定义变量varibletypevar,然后,在程序的任何地方,都可以用下面的方法来访问该变量:   CClassApp*app=(CClassApp*)AfxGetApp();   app->var= 类似的,以上方法也可以定义全局对象例子:AppWizard建立一个Test工程那么在Test.h中声明CStringcs;使用的时候CTestApp*app=(CTestApp*)AfxGetApp();    app->cs="Global" 防错措施:若定义的函数和全局变量在多个文件包含且造成嵌套或多次调用

5、的话,这样将导致这个头文件每被包含依次,函数或变量就被重新定义一次,在链接编译时会导致重定义错误。为此需要使用一种被称为Guardmacro的技术来保证不出错。在一个头文件开头加上 #ifndef  _MACRO_1_#define  _MACRO_1_在文件末尾增加 #endifwindows消息机制1.窗口过程每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(WindowHandle),消息ID(MessageID),和两个消息参数(wParam,lParam),当窗口收到消息时系统就会调用此窗口过程来处理消息。(所以叫回调函数)2消息类型1)

6、系统定义消息(System-DefinedMessages)在SDK中事先定义好的消息,非用户定义的,其范围在[0x0000,0x03ff]之间,可以分为以下三类:1>窗口消息(WindowsMessage)与窗口的内部运作有关,如创建窗口,绘制窗口,销毁窗口等。可以是一般的窗口,也可以是Dialog,控件等。如:WM_CREATE,WM_PAINT,WM_MOUSEMOVE,WM_CTLCOLOR,WM_HSCROLL...2>命令消息(CommandMessage)与处理用户请求有关,如单击菜单项或工具栏或控件时,就会产生命令消息。WM_COMMAND,LOWORD(wParam)表示

7、菜单项,工具栏按钮或控件的ID。如果是控件,HIWORD(wParam)表示控件消息类型3>控件通知(NotifyMessage)控件通知消息,这是最灵活的消息格式,其Message,wParam,lParam分别为:WM_NOTIFY,控件ID,指向NMHDR的指针。NMHDR包含控件通知的内容,可以任意扩展。2)程序定义消息(Application-DefinedMessages)用户自定义的消息,对于其范围有如下规

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

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

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