




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度不锈钢户外照明系统设计与安装合同
- 2025版智能控制系统研发合同模板
- 二零二五年度能源设备招标采购合同
- 二零二五版专用机械运输租赁及维护保养合同模板
- 二零二五年健身课程分期支付合同下载
- 二零二五年度户外广告投放代理服务合同范本
- 梁语2025年度离婚案调解与婚姻心理咨询合同
- 2025版大型桥梁打桩工程承包合同下载
- 2025版物流运输合同模板(冷链物流服务)
- 二零二五年度货车司机交通事故责任及赔偿处理合同
- 2025年山西航空产业集团有限公司招聘考试笔试试题(含答案)
- 电梯安全培训课件内容
- 2025年事业单位招聘职业能力倾向测验考试题库附参考答案满分必刷
- 应聘副研究员汇报
- 2025年中考历史(河南卷)真题评析
- 手术室时间管理课件
- 2025版线上直播场推广服务合同模板
- 高一上学期数学学法指导课件2024.9.14
- GB/T 45845.1-2025智慧城市基础设施整合运营框架第1部分:全生命周期业务协同管理指南
- 呼吸科考试试题及答案
- 肿瘤内科胆囊癌护理查房
评论
0/150
提交评论