资源描述:
《明明白白看MFC之程序框架》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、明明白白看MFC之程序框架作者:极点学网 阅读人次:630 文章来源:极点学网 发布时间:2007/8/29 网友评论(0)条 对于程序员来说,如果要提高编程效率,一个好用的,功能强大的并且可以得心应手使用的编程工具往往会给我们程序员带来莫大的方便。其实对于现在的编程工具来说,使用哪一种工具都不是问题的关键,重要的是你能够使用到什么程度,毕竟现在的工具都是非常的强大,对于一般的编程任务来说还没有不能够胜任的工具,否则的话恐怕他就不可能在这个世界上存在哪怕是只有一个月的生命。但是根据个人所好以及周围的人的影响,我们
2、都会去使用某一种或者几种工具。比较VisualBasic、C++Builder和Delphi等编程工具,用VC++编写Windows应用程序可以说是最富于挑战性和艰巨性。在本文中我无意去比较各种工具的好坏,仅就我自己学习VisualC++的MFC的体会和心得拿出来与大家一起分享和交流,也希望可以结识更多的志同道合的朋友。 就我个人的偏见,学习VC++就应该要学习他的类库MFC(MicrosoftFoundationClasses)。也许有的人一听说MFC就有点望而生畏,这是可以理解的,毕竟Microsoft虽然给了我们一个强大而且非常复杂
3、的类库,但是没有给我们带来学习他的好的方便之处。回想自己学习MFC时的无助和迷茫,以及所走过的弯路,现在想起来还心有余悸,虽然我现在也还是处于非常初级的初级入门阶段,但是还是很乐意把自己的心得和体会拿出来一起与大家分享。也希望得到大家的指点。一、SDK应用程序结构 我学习MFC之路可是从windows编程开始的(可能这一开始就是弯路了^_^)。首先也请大家跟着我一起看一个SDK应用程序结构的Windows应用程序。当然也是经典的“Helloworld!”了,编写的过程就不必罗嗦了,下面给出他的主要源代码(我使用向导生成的,但是为了阅读
4、的方便经过了一点点的编辑):LRESULTCALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); intAPIENTRYWinMain(HINSTANCEhInstance, HINSTANCEhPrevInstance, LPSTR lpCmdLine, int nCmdShow){ //TODO:Placecodehere. MSGmsg; ………………………………
5、 MyRegisterClass(hInstance); if(!InitInstance(hInstance,nCmdShow)) { returnFALSE; } //Mainmessageloop: while(GetMessage(msg,NULL,0,0)) { if(!TranslateAccelerator(msg.hwnd,hAccelTable,msg)) { TranslateMessage(msg); Dispat
6、chMessage(msg); }} returnmsg.wParam; } BOOLInitInstance(HINSTANCEhInstance,intnCmdShow) { …………………… returnTRUE; } //窗口函数WndProc(),回调函数 LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam) { intwmId,wmEvent; …………………… switch(message)
7、 { caseWM_COMMAND: ……………… break;caseWM_PAINT: hdc=BeginPaint(hWnd,ps); //TODO:Addanydrawingcodehere... RECTrt; GetClientRect(hWnd,rt); DrawText(hdc,szHello,strlen(szHello),rt,
8、DT_CENTER); EndPaint(hWnd,ps); break; caseWM_DESTROY: