久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
MFC 程序
[打印本頁(yè)]
作者:
heise
時(shí)間:
2014-8-18 01:09
標(biāo)題:
MFC 程序
MFC中,各控件的類(lèi)都是從窗口類(lèi)CWnd派生出來(lái)的,所以控件是一窗口的一種;
[size=133%]Ø
什么是對(duì)話(huà)框?
Ø
對(duì)話(huà)框就是一個(gè)
Dialog
控件,和其他的控件不同的是,
Dialog
控件有自己的消息循環(huán)和
Dialog
回調(diào)處理程序。
Win32的應(yīng)用程序有一條很明確的主線(xiàn): 1:進(jìn)入WinMain函數(shù)
2:設(shè)計(jì)窗口類(lèi)、注冊(cè)窗口類(lèi)
3:產(chǎn)生窗口、顯示窗口、更新窗口
4:進(jìn)入消息循環(huán),將消息路由到窗口過(guò)程函數(shù)(xxxProc)中去處理;
在消息處理函數(shù)中,根據(jù)消息的類(lèi)型與各控件的屬性,點(diǎn)綴整個(gè)窗口;
在MFC程序設(shè)計(jì)中,為了設(shè)計(jì)的方便,在MFC的“底層框架類(lèi)”中封裝了每一個(gè)窗口應(yīng)用程序都需要的各步驟;
窗口的創(chuàng)建: CWnd類(lèi)的CreateEx函數(shù)實(shí)現(xiàn)【CFrameWnd類(lèi)的Create函數(shù) 調(diào)用 CreateEx函數(shù); CFrameWnd類(lèi)的LoadFrame函數(shù)調(diào)用Create函數(shù)】,CWnd類(lèi)派生出CFrameWnd類(lèi)。
Wnd對(duì)象與Windows的窗口不同,但是兩者有緊密聯(lián)系。CWnd對(duì)象是由CWnd的
構(gòu)造函數(shù)
和
析構(gòu)函數(shù)
創(chuàng)建或銷(xiāo)毀的。另一方面,Windows的窗口是Windows的一種內(nèi)部
數(shù)據(jù)結(jié)構(gòu)
,它是由CWnd的Create成員函數(shù)創(chuàng)建的,而由CWnd的虛擬
析構(gòu)函數(shù)
銷(xiāo)毀。DestroyWindow函數(shù)銷(xiāo)毀Windows的窗口,但是不銷(xiāo)毀對(duì)象。
顯示窗口與更新窗口:ShowWindow(SW_SHOW);
UpdateWindow();
【
UpdateWindow 將
WM_PAINT
消息直接發(fā)送給窗口過(guò)程處理函數(shù)進(jìn)行處理,對(duì)窗口進(jìn)行刷新;當(dāng)窗口從無(wú)到有、改變尺寸、最小化后再恢復(fù)、被其他窗口遮蓋后再顯示時(shí),窗口的客戶(hù)區(qū)都將變?yōu)闊o(wú)效,此時(shí)系統(tǒng)會(huì)給應(yīng)用程序發(fā)送WM_PAINT消息,我們也可以手動(dòng)調(diào)用
UpdateWindow函數(shù)(該函數(shù)會(huì)發(fā)送),我們呢也可以調(diào)用
Invalidate(使整個(gè)窗口的客戶(hù)區(qū)或者窗口上的某個(gè)控件無(wú)效,具體的名字與參數(shù)因場(chǎng)合不同 可能有不同)
】
【CFrameWnd類(lèi)派生于CWnd類(lèi)】
【各控件類(lèi)CEdit、CBotton等都是派生于CWnd,所以控件其實(shí)也是窗口,所以他們其實(shí)也是通過(guò)Create函數(shù)創(chuàng)建,創(chuàng)建的過(guò)程是類(lèi)似的】
消息循環(huán):CWinThread類(lèi)的Run函數(shù)就是完成消息循環(huán)這一任務(wù);該函數(shù)的主要結(jié)構(gòu)是一個(gè)for循環(huán),該循環(huán)在接收到一個(gè)WM_QUIT消息時(shí)退出。
窗口過(guò)程函數(shù):
CWnd類(lèi):
CWnd是MFC窗口類(lèi)的基類(lèi),提供了微軟基礎(chǔ)類(lèi)庫(kù)中所有窗口類(lèi)的基本功能。CWnd對(duì)象與Windows的窗口不同,但是兩者有緊密聯(lián)系。CWnd對(duì)象是由CWnd的構(gòu)造函數(shù)和析構(gòu)函數(shù)創(chuàng)建或銷(xiāo)毀的。另一方面,Windows的窗口是Windows的一種內(nèi)部數(shù)據(jù)結(jié)構(gòu),它是由CWnd的Create成員函數(shù)創(chuàng)建的,而由CWnd的虛擬析構(gòu)函數(shù)銷(xiāo)毀。DestroyWindow函數(shù)銷(xiāo)毀Windows的窗口,但是不銷(xiāo)毀對(duì)象。
CFrameWnd類(lèi)
:CFrameWnd類(lèi)往往用于創(chuàng)建應(yīng)用程序的主窗口,因?yàn)樗芎芎玫刂С窒到y(tǒng)菜單和控制條(工具條、狀態(tài)條等),為此定義了大量的成員函數(shù)和變量。在編寫(xiě)文檔/視圖結(jié)構(gòu)的應(yīng)用程序時(shí),CFrameWnd作為主窗口管理視圖和文檔對(duì)象。視圖對(duì)象和控制條都成為CFrameWnd的子窗口,它們分享客戶(hù)區(qū),其位置被CFrameWnd有效地排列。CFrameWnd直接支持單文檔界面(SDI),對(duì)于多文檔界面(MDI),使用其派生類(lèi)CMDIFrameWnd和CMDIChildWnd。該類(lèi)定義了兩個(gè)成員函數(shù)用于創(chuàng)建主窗口,即Create()和LoadFrame()。前者主要通過(guò)CWnd::CreateEx()創(chuàng)建窗口;而后者首先組織參數(shù),再調(diào)用前者。它們的定義如下:
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
伊人手机在线视频
|
亚洲综合视频
|
久久国内精品
|
日韩免费网站
|
久久在线
|
97久久精品午夜一区二区
|
国产精品视频久久
|
亚洲人成网站777色婷婷
|
亚洲欧美一区二区三区情侣bbw
|
国产精品久久国产精品
|
中国黄色在线视频
|
日韩中文字幕视频
|
97久久国产
|
精品国产99
|
欧美一级免费看
|
欧美精品一区二区三区一线天视频
|
在线播放一区二区三区
|
久久久久国产一区二区三区
|
国产永久免费
|
久久精品色欧美aⅴ一区二区
|
国产精品久久九九
|
综合久久综合久久
|
中文二区
|
欧美精品a∨在线观看不卡 国产精品久久国产精品
|
毛片区
|
精品一区二区久久久久久久网站
|
国产免费观看视频
|
国产资源在线播放
|
久久久成
|
免费成人高清在线视频
|
中文字幕在线观看视频一区
|
久久综合一区
|
成人h视频在线观看
|
日韩国产中文字幕
|
91极品视频
|
国产精品久久99
|
国产在线视频一区二区董小宛性色
|
九九热精品视频
|
美女天天操
|
韩日av在线
|
午夜电影福利
|