freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vs20xx-mfc編程入門(編輯修改稿)

2025-06-23 22:10 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 。.............略 4. //Appglobalinitializations(rare) 5. if(pApp!=NULLamp。amp。!pAppInitApplication()) 6. gotoInitFailure。 7. 8. if(!pThreadInitInstance()) 9. { 10. .........略 11. } 12. 13. // ,由此函數(shù)進(jìn)入消息循環(huán) 14. nReturnCode=pThreadRun()。 15. 16. ..............略 17. 18. returnnReturnCode。 19. } 上面InitInstance函數(shù)的代碼如下:C++代碼1. BOOLCTestApp::InitInstance() 2. { 3. .............略 4. CSingleDocTemplate*pDocTemplate。 5. pDocTemplate=newCSingleDocTemplate( 6. IDR_MAINFRAME, 7. RUNTIME_CLASS(CTestDoc), 8. RUNTIME_CLASS(CMainFrame),//mainSDIframewindow 9. RUNTIME_CLASS(CTestView))。 10. if(!pDocTemplate) 11. returnFALSE。 12. AddDocTemplate(pDocTemplate)。 13. //Parsemandlineforstandardshellmands,DDE,fileopen 14. 15. CCommandLineInfocmdInfo。 16. ParseCommandLine(cmdInfo)。 17. 18. //,注冊(cè)并創(chuàng)建窗口 19. if(!ProcessShellCommand(cmdInfo)) 20. returnFALSE。 21. 22. m_pMainWndShowWindow(SW_SHOW)。 23. m_pMainWndUpdateWindow()。 24. 25. returnTRUE。 26. } InitInstance中的ProcessShellCommand函數(shù)又調(diào)用了CMainFrame的LoadFrame函數(shù)注冊(cè)并創(chuàng)建了窗口,執(zhí)行完P(guān)rocessShellCommand函數(shù)以后,調(diào)用了m_pMainWnd的ShowWindow和UpdateWindow函數(shù)顯示并更新框架窗口。這些是不是與上面的SDK程序十分類似?接下來(lái)該是消息循環(huán)了,上面的AfxWinMain函數(shù)中調(diào)用了pThread的Run函數(shù)(),在Run中包含了消息循環(huán)。Run函數(shù)的代碼如下:C++代碼1. intCWinThread::Run() 2. { 3. .............略 4. //phase2:pumpmessageswhileavailable 5. do 6. { 7. //pumpmessage,butquitonWM_QUIT 8. if(!PumpMessage()) 9. returnExitInstance()。 10. 11. //resetnoidlestateafterpumpingnormalmessage 12. if(IsIdleMessage(amp。m_msgCur)) 13. { 14. bIdle=TRUE。 15. 16. lIdleCount=0。 17. 18. } 19. }while(::PeekMessage(amp。m_msgCur,NULL,NULL,NULL,PM_NOREMOVE))。 20. ..............略 21. } 22. 23. BOOLCWinThread::PumpMessage() 24. { 25. returnAfxInternalPumpMessage()。 26. } 27. 28. BOOLAFXAPIAfxInternalPumpMessage() 29. { 30. _AFX_THREAD_STATE*pState=AfxGetThreadState()。 31. 32. if(!::GetMessage(amp。(pStatem_msgCur),NULL,NULL,NULL)) 33. { 34. .............略 35. } 36. ...............略 37. if(pState!=WM_KICKIDLEamp。amp。!AfxPreTranslateMessage(amp。(pStatem_msgCur))) 38. { 39. ::TranslateMessage(amp。(pStatem_msgCur))。 40. ::DispatchMessage(amp。(pStatem_msgCur))。 41. } 42. 43. returnTRUE。 44. } 我們看到PumpMessage中通過(guò)調(diào)用GetMessage、TranslateMessage、DispatchMessage等建立了消息循環(huán)并投遞消息。窗口過(guò)程函數(shù)AfxWinProc形式如下:C++代碼1. LRESULTCALLBACKAfxWndProc(HWNDhWnd,UINTnMsg,WPARAMwParam,LPARAMlParam) 2. { 3. …… 4. CWnd*pWnd=CWnd::FromHandlePermanent(hWnd)。5. ReturnAfxCallWndProc(pWnd,hWnd,nMsg,wParam,lParam)。 6. } 兩者運(yùn)行過(guò)程對(duì)比 到此,通過(guò)對(duì)比可以發(fā)現(xiàn),MFC應(yīng)用程序的運(yùn)行流程與SDK程序是類似的,都是先進(jìn)行一些初始化過(guò)程,再注冊(cè)并創(chuàng)建窗口,然后顯示、更新窗口,最后進(jìn)入消息循環(huán),消息都由窗口過(guò)程函數(shù)處理?,F(xiàn)在大家是不是覺(jué)得有些頭緒了?在運(yùn)行流程上有基本的掌握即可。 在第二講中,給大家演示了如何利用應(yīng)用程序向?qū)蓡挝臋n應(yīng)用程序框架,可以看到程序的基本框架和必要的代碼都自動(dòng)生成了,上一講又講解了文件組成結(jié)構(gòu),實(shí)際上在前面自動(dòng)生成的框架中比較重要的類包括以下幾個(gè):CHelloWorldApp、CMainFrame、CHelloWorldDoc和CHelloWorldView,至于其他的類比如CClassView、CFileView等都是在框架窗口(CMainFrame)上創(chuàng)建的面板等,不是必要的。雞啄米就四個(gè)主要類的關(guān)系簡(jiǎn)單講下,CHelloWorldApp類處理消息,將收到的消息分發(fā)給相應(yīng)的對(duì)象。CMainFrame是視圖CHelloWorldView的父窗口,視圖CHelloWorldView就顯示在CMainFrame的客戶區(qū)中。視圖類CHelloWorldView用來(lái)顯示文檔類CHelloWorldDoc中的數(shù)據(jù),并根據(jù)對(duì)視圖類的操作修改文檔類的數(shù)據(jù)。一個(gè)視圖類只能跟一個(gè)文檔類相聯(lián)系,而一個(gè)文檔類可以跟多個(gè)視圖類相聯(lián)系。關(guān)于視圖類和文檔類的關(guān)系后面會(huì)詳細(xì)講解。 本節(jié)VC++/MFC編程入門教程內(nèi)容比較多,主要是讓大家對(duì)MFC應(yīng)用程序的運(yùn)行原理有大概的了解。對(duì)于以后的MFC開(kāi)發(fā)有很多好處。如果有問(wèn)題請(qǐng)?jiān)陔u啄米博客留言交流。謝謝。五、MFC消息映射機(jī)制概述 上一講雞啄米為大家簡(jiǎn)單分析了MFC應(yīng)用程序框架,這一講是關(guān)于MFC消息映射機(jī)制的內(nèi)容。 前面已經(jīng)說(shuō)過(guò),Windows應(yīng)用程序是消
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1