已阅读1页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C学习记录(函数指针)就像数组名是指向数组第一个元素的常指针一样,函数名也是指向函数的常指针。可以声明一个指向函数的指针变量,并且用这个指针来调用这个函数。这可能非常有用;它使你能编写一个根据用户输入来决定调用哪一个函数的程序。有关函数指针唯一的决窍是理解所指向的对象类型。一个指向整型的指针指向一个整型变量,一个指向函数的指针必须指向一个有正确返回类型和签名的函数。1声明函数指针VOIDPFUNCINTPFUNCINTCOUNT1,INTCOUNT2两个PFUNC都是指向函数的指针,第一个函数不带参数并返回空类型;第二个函数带有两个整型参数并返回一个整型变量。2声明函数指针数组就像声明一个指向整型变量的指针数组一样,也可以声明一个指向返回特定值类型和具有特定签名的函数指针数组。VOIDPFUNC5INTCOUNT1,INTCOUNT23函数指针(函数指针数组)作为参数函数指针(函数指针数组)可以传递给别的函数(这些函数可能执行动作,然后用这个指针调用正确的函数)。VOIDONDRAWVOIDFUNCIFFUNCFUNC4成员函数指针创建成员函数指针,可以用与函数指针相同的语法,加上包含类名和作用域运算符()。VOIDTCLASSPFUNCINTCOUNT1,INTCOUNT2成员函数指针的用法和函数指针的用法一样,不同之处是成员函数指针需要一个正确的类对象来调用是针对它的函数。上机练习学习实例编程一个应用窗体框架基类程序(C)文件名TCWINH/TCWINHC窗体框架基类/IFNDEF_TCWIN_H_DEFINE_TCWIN_H_INCLUDEDEFINETCW_MSGSTATICDEFINETCW_MSGSTATICDEFINETCWINMAINWINAPIWINMAINHINSTANCEHINSTANCE,HINSTANCEHPREVINSTANCE,LPSTRLPSZCMDLINE,INTNCMDSHOWDEFINETCMAINWINAPIWINMAINHINSTANCEHINSTANCE,HINSTANCEHPREVINSTANCE,LPSTRLPSZCMDLINE,INTNCMDSHOWDEFINETMAINWINAPIWINMAINHINSTANCEHINSTANCE,HINSTANCEHPREVINSTANCE,LPSTRLPSZCMDLINE,INTNCMDSHOW/TCMSGFUNCSTRUCT/声明窗体消息接口函数/STRUCTTCMSGFUNCINTMFIDVOIDMSGFUNC0VOIDMSGFUNC1INTCOUNTVOIDMSGFUNC2INTCOUNT1,INTCOUNT2VOIDMSGFUNC3HINSTANCEHINSTANCE,HWNDHWND,WPARAMWPARAM/TCMSGSTRUCT/声明窗体消息信息/STRUCTTCMSGUINTMSGUINTMIDTCMSGFUNCMSGFUNC/TCMSGGETTCMSGUINTMSG,UINTMID,INTMFID,VOIDFUNC0,VOIDFUNC1INTCOUNT,VOIDFUNC2INTCOUNT1,INTCOUNT2,VOIDFUNC3HINSTANCEHINSTANCE,HWNDHWND,WPARAMWPARAMTCMSGTCMSGTCMSGMIDMIDTCMSGMSGMSGTCMSGMSGFUNCMFIDMFIDTCMSGMSGFUNCMSGFUNC0FUNC0TCMSGMSGFUNCMSGFUNC1FUNC1TCMSGMSGFUNCMSGFUNC2FUNC2TCMSGMSGFUNCMSGFUNC3FUNC3RETURNTCMSGTCMSGGETTCMSGUINTMSG,TCMSGTMSG,INTCOUNTTCMSGTCMSG0,0,0,0,0,0,0FORINTI0IM_HDCGETDCHWND_TCF_M_HWNDHWNDSETTIMERHWND,1,1,NULLBREAKCASEWM_COMMANDTCMSGGETTCMSGWM_COMMAND,_TCF_M_MESSAGE,_TCF_M_MESSAGE_MAPIFTCMSGMSGWM_COMMANDRETURNDEFWINDOWPROCHWND,MESSAGE,WPARAM,LPARAMBREAKCASEWM_PAINTTCMSGGETTCMSGWM_PAINT,_TCF_M_MESSAGE,_TCF_M_MESSAGE_MAPIFTCMSGMSGWM_PAINTBREAKCASEWM_SIZETCMSGGETTCMSGWM_SIZE,_TCF_M_MESSAGE,_TCF_M_MESSAGE_MAPIFTCMSGMSGWM_SIZEBREAKCASEWM_MOUSEMOVETCMSGGETTCMSGWM_MOUSEMOVE,_TCF_M_MESSAGE,_TCF_M_MESSAGE_MAPIFTCMSGMSGWM_MOUSEMOVEBREAKCASEWM_LBUTTONDOWNTCMSGGETTCMSGWM_LBUTTONDOWN,_TCF_M_MESSAGE,_TCF_M_MESSAGE_MAPIFTCMSGMSGWM_LBUTTONDOWNBREAKCASEWM_LBUTTONUPTCMSGGETTCMSGWM_LBUTTONUP,_TCF_M_MESSAGE,_TCF_M_MESSAGE_MAPIFTCMSGMSGWM_LBUTTONUPBREAKCASEWM_RBUTTONDOWNTCMSGGETTCMSGWM_RBUTTONDOWN,_TCF_M_MESSAGE,_TCF_M_MESSAGE_MAPIFTCMSGMSGWM_RBUTTONDOWNBREAKCASEWM_RBUTTONUPTCMSGGETTCMSGWM_RBUTTONUP,_TCF_M_MESSAGE,_TCF_M_MESSAGE_MAPIFTCMSGMSGWM_RBUTTONUPBREAKCASEWM_KEYDOWNTCMSGGETTCMSGWM_KEYDOWN,_TCF_M_MESSAGE,_TCF_M_MESSAGE_MAPIFTCMSGMSGWM_KEYDOWNBREAKCASEWM_KEYUPTCMSGGETTCMSGWM_KEYUP,_TCF_M_MESSAGE,_TCF_M_MESSAGE_MAPIFTCMSGMSGWM_KEYUPBREAKCASEWM_CHARTCMSGGETTCMSGWM_CHAR,_TCF_M_MESSAGE,_TCF_M_MESSAGE_MAPIFTCMSGMSGWM_CHARBREAKCASEWM_TIMERINVALIDATERECTHWND,NULL,FALSEBREAKCASEWM_DESTROYPOSTQUITMESSAGE0BREAKRETURNDEFWINDOWPROCHWND,MESSAGE,WPARAM,LPARAMVOIDTCWNDFRAMEMOVEWINDOWINTX,INTY,INTWIDTH,INTHEIGHTMOVEWINDOWM_HWND,X,Y,WIDTH,HEIGHT,TRUEVOIDTCWNDFRAMESETWINDOWTEXTWTCHARWNAMESETWINDOWTEXTWM_HWND,WNAMEVOIDTCWNDFRAMESETWINDOWPOSINTX,INTY,INTCX,INTCYSETWINDOWPOSM_HWND,NULL,X,Y,CX,CY,0VOIDTCWNDFRAMESETWINDOWMENULPCTSTRMENUM_MENUMENUVOIDTCWNDFRAMEGETCLASSNAMEHWNDHWND,LPWSTRLPCLASSNAME,INTNMAXCOUNTGETCLASSNAMEHWND,LPCLASSNAME,NMAXCOUNTHWNDTCWNDFRAMEFINDWINDOWLPCWSTRLPCLASSNAME,LPCWSTRLPWINDOWNAMERETURNFINDWINDOWLPCLASSNAME,LPWINDOWNAMEVOIDTCWNDFRAMECLOSEWINDOWHWNDHWNDCLOSEWINDOWHWNDVOIDTCWNDFRAMEGETWINDOWTEXTHWNDHWND,LPWSTRLPSTRING,INTNMAXCOUNTGETWINDOWTEXTHWND,LPSTRING,NMAXCOUNT/宏定义窗体消息信息(主要把派生类的消息函数写入到基类的消息指针处)/把基类的全局指针指向当前派生类的指针(正确调用窗体消息接口函数)/DEFINEDECLARE_MESSAGE_MAPPUBLICTCMSG_MESSAGE20INT_MESSAGE_MAPDEFINEBEGIN_MESSAGE_MAPTT_MESSAGE_MAP0_TCF_TDEFINEON_WM_PAINTTT_MESSAGET_MESSAGE_MAPGETTCMSGWM_PAINT,T_MESSAGE_MAP,0,TONPAINT,NULL,NULL,NULLT_MESSAGE_MAPDEFINEON_WM_SIZETT_MESSAGET_MESSAGE_MAPGETTCMSGWM_SIZE,T_MESSAGE_MAP,2,NULL,NULL,TONSIZE,NULLT_MESSAGE_MAPDEFINEON_WM_MOUSEMOVETT_MESSAGET_MESSAGE_MAPGETTCMSGWM_MOUSEMOVE,T_MESSAGE_MAP,2,NULL,NULL,TONMOUSEMOVE,NULLT_MESSAGE_MAPDEFINEON_WM_LBUTTONDOWNTT_MESSAGET_MESSAGE_MAPGETTCMSGWM_LBUTTONDOWN,T_MESSAGE_MAP,1,NULL,TONLBUTTONDOWN,NULL,NULLT_MESSAGE_MAPDEFINEON_WM_LBUTTONUPTT_MESSAGET_MESSAGE_MAPGETTCMSGWM_LBUTTONUP,T_MESSAGE_MAP,1,NULL,TONLBUTTONUP,NULL,NULLT_MESSAGE_MAPDEFINEON_WM_RBUTTONDOWNTT_MESSAGET_MESSAGE_MAPGETTCMSGWM_RBUTTONDOWN,T_MESSAGE_MAP,1,NULL,TONRBUTTONDOWN,NULL,NULLT_MESSAGE_MAPDEFINEON_WM_RBUTTONUPTT_MESSAGET_MESSAGE_MAPGETTCMSGWM_RBUTTONUP,T_MESSAGE_MAP,1,NULL,TONRBUTTONUP,NULL,NULLT_MESSAGE_MAPDEFINEON_WM_KEYDOWNTT_MESSAGET_MESSAGE_MAPGETTCMSGWM_KEYDOWN,T_MESSAGE_MAP,1,NULL,TONKEYDOWN,NULL,NULLT_MESSAGE_MAPDEFINEON_WM_KEYUPTT_MESSAGET_MESSAGE_MAPGETTCMSGWM_KEYUP,T_MESSAGE_MAP,1,NULL,TONKEYUP,NULL,NULLT_MESSAGE_MAPDEFINEON_WM_CHARTT_MESSAGET_MESSAGE_MAPGETTCMSGWM_CHAR,T_MESSAGE_MAP,1,NULL,TONCHAR,NULL,NULLT_MESSAGE_MAPDEFINEON_WM_COMMANDTT_MESSAGET_MESSAGE_MAPGETTCMSGWM_COMMAND,T_MESSAGE_MAP,3,NULL,NULL,NULL,TONCOMMANDT_MESSAGE_MAPDEFINEEND_MESSAGE_MAPTTM_MESSAGE_MAPT_MESSAGE_MAPTM_MESSAGE/DEFI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年乡镇干部气象灾害防御条例应知应会测试题库
- 2026年校外培训机构培训内容备案测试卷
- 开发分享工作经验演讲稿
- 2026年营养师面试常见问题与食谱编制
- 2026年企业人才发展与招聘机制测试题
- 关于冬奥苏翊鸣演讲稿
- 2026年乡镇便民服务中心题库
- 2026年中国古代文化常识与文学鉴赏全题型题集
- 2026年禁毒工作信息化设备操作题
- 2026年施工现场临时用电接地电阻测试记录
- 脱毛知识培训课件
- 很好用的融资租赁测算表(可编辑版)
- 2023年机动车检测站管理评审资料
- 新生儿喂养不耐受-新生儿喂养不耐受诊断标准教学课件
- 驾驶员从业资格证电子版
- 《云南省田坝煤矿二号井采矿权出让收益评估报告》
- 毕业论文-基于三维视觉的工件测量技术研究
- GB/T 37047-2022基于雷电定位系统(LLS)的地闪密度总则
- GB/T 20303.1-2006起重机司机室第1部分:总则
- GB/T 11547-2008塑料耐液体化学试剂性能的测定
- GB/T 10066.1-2019电热和电磁处理装置的试验方法第1部分:通用部分
评论
0/150
提交评论