1 / 237
文档名称:

MFC学习笔记.doc

格式:doc   大小:2,429KB   页数:237页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

MFC学习笔记.doc

上传人:幸福人生 2024/5/9 文件大小:2.37 MB

下载得到文件列表

MFC学习笔记.doc

相关文档

文档介绍

文档介绍:该【MFC学习笔记 】是由【幸福人生】上传分享,文档一共【237】页,该文档可以免费在线阅读,需要了解更多关于【MFC学习笔记 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。++,此文件包含了常用的AFX函数的声明,,此文件包含了CRECT,CPoint,CWnd等许多类及其方法的声明。->Setting->Debug可以加入命令行参数。""。因为LoadCursor,MessageBox等函数的声明在这个文件中。,1设计窗口类,2注册窗口类,3创建窗口,,即可作为函数指针。,可以在MSDN中输入“BOOL”然后选择“DATATYPE”。,atoi将字符串转化为int型。。:可以认为出了包含它的大括号,这个变量的生命周期结束。所以全局变量的WNDCLASSwndcls;//=LoadCursor();//初始化....RegisterClass(&wndcls);//注册窗口类hwnd=CreateWindow(...);//创建窗口ShowWindow(..);//显示窗口UpdateWindow(..);MSGmsg;//定义消息结构体while(GetMessage(...))//消息循环{...}return0;}LRESULTCALLBACKMyProc(...)//实现回调函数{switch(uMsg){caseWM_CHAR:break;...}}";"号!例如ClassPoint{intx;inty;};2.#include<>与#include""的区别:<>不查找运行时目录,""查找运行时目录!,如果未指明成员类型,:引用经常用在函数的传参上。另外数值交换函数也经常用引用。例change(int&x,int&y){inttemp;temp=x;x=y;y=x}调用时即可以用inta=3;intb=4;change(a,b);一般不用指针来作为参数进行数值交换。因为会引起歧义。,而将其实现放在cpp文件中,别忘记了在cpp文件中#include""?用#inndefPoint_H_H#definePoint_H_HclassPoint{};#。最后由链接器将与将要使用到的C++标准库类链接成exe文件,头文件不参加编译。所以在cpp文件中别忘记了加入#include"",在子类中重写父类的函数,此时采用早期绑定的方法。如果加入了virtual,则将采用迟绑定的技术,在运行时根据对象的类型确定调用哪一个函数。此迟绑定技术是MFC的类的继承的精髓。。如果CFish从CAnimal派生而来。则可以将鱼的对象转换为CAnimal的对象,而反之则不行。从现实中理解也是正常的,鱼可以是动物,而动物却不是鱼。再如int可以强制转换成char型。而反之则出错。,全局变量已经被分配内存并初始化了。,而由于子类构造函数执行前,其父类的构造函数先被执行,所以CTestApp的父类CWinAPP的构造函数先执行。产生了theApp对象后,在WinMain()中的指针*pThread和*pApp就有了内容。:CTestApptheApp;//构造全局对象WinMain(){AfxWinMain();//调用下面的函数}AfxWinMain(){pThread->Initinstance();//初始化工作和注册窗口类,窗口显示和更新pThread->Run();//消息循环}而在BOOLCTestApp::InitInstance()中的代码CSingleDocTemplate*pDocTemplate;pDocTemplate=newCSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CTestDoc),RUNTIME_CLASS(CMainFrame),//mainSDIframewindowRUNTIME_CLASS(CTestView));AddDocTemplate(pDocTemplate);完成了将这三个类关联起来的工作。?在CMainFrame::OnCreate()中定义一个CButton的对象btn;("维新",WS_DISABLED|WS_CHILD|WS_VISIBLE|BS_AUTO3STATE,CRect(0,0,300,100),/*GetParent(),*/this,123);注意点:(1).此处btn不能是局部变量,否则它的生命周期太短,将不能显示。(2).在create函数的第二个参数中加入WS_VISIBLE参数才行。否则必须调用ShowWindow也可以在view的OnCreate消息响应函数中加入(3).,,所以可以直接使用。因为MFC中的每一个类中都有#include""的声明。。此时如果编写针对MainFrame的mouseClick事件,将不会有反应。,1处是在头文件中,//{{AFX_MSG(CDrawView)afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOnMouseMove(UINTnFlags,CPointpoint);//}}AFX_MSGDECLARE_MESSAGE_MAP()另一处是cpp文件的beginMessageMap和EndMessageMap之间,BEGIN_MESSAGE_MAP(CDrawView,CView)//{{AFX_MSG_MAP(CDrawView)ON_WM_LBUTTONDOWN()ON_WM_LBUTTONUP()ON_WM_MOUSEMOVE()//}}AFX_MSG_MAP