已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年试验检测师之交通工程考试题库300道含答案【完整版】
- 2025河南安阳高新区第一批就业见习人员招募44人参考题库附答案
- 2026年一级注册建筑师之建筑物理与建筑设备考试题库300道附参考答案(培优b卷)
- 2025湖南衡阳市耒阳市事业单位选聘39人备考题库附答案
- 2026年一级注册建筑师之建筑物理与建筑设备考试题库300道及参考答案1套
- 2025陕投集团校园招聘(281人)笔试备考试题附答案
- 2026年一级注册建筑师之建筑结构考试题库300道附完整答案(名师系列)
- 2026年初级经济师之初级建筑与房地产经济考试题库300道参考答案
- 2025年教师转岗考试职业能力测试题库150道含答案(考试直接用)
- 跨境租赁法律问题及对策
- 劳务合同模板电子下载
- Science and Technology科学与技术课件
- 设计事理学方法论-课件
- 电梯形式检测报告
- 娱乐场所文明服务责任书
- 纤维增强混凝土
- 部编版九年级语文下册古诗文复习课件
- GB/T 19867.6-2016激光-电弧复合焊接工艺规程
- 闽教版三年级起点六年级上册英语《Unit-8-The-Universe-Part-A》(一等奖课件)
- 电气设备选择课件
评论
0/150
提交评论