久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3014|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

MFC 程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:60266 發(fā)表于 2014-8-18 01:09 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
MFC中,各控件的類都是從窗口類CWnd派生出來(lái)的,所以控件是一窗口的一種;

[size=133%]Ø什么是對(duì)話框?
Ø對(duì)話框就是一個(gè)Dialog控件,和其他的控件不同的是,Dialog控件有自己的消息循環(huán)和Dialog回調(diào)處理程序。




Win32的應(yīng)用程序有一條很明確的主線:  1:進(jìn)入WinMain函數(shù)
  2:設(shè)計(jì)窗口類、注冊(cè)窗口類
  3:產(chǎn)生窗口、顯示窗口、更新窗口
  4:進(jìn)入消息循環(huán),將消息路由到窗口過程函數(shù)(xxxProc)中去處理;
在消息處理函數(shù)中,根據(jù)消息的類型與各控件的屬性,點(diǎn)綴整個(gè)窗口;

在MFC程序設(shè)計(jì)中,為了設(shè)計(jì)的方便,在MFC的“底層框架類”中封裝了每一個(gè)窗口應(yīng)用程序都需要的各步驟;

窗口的創(chuàng)建: CWnd類的CreateEx函數(shù)實(shí)現(xiàn)【CFrameWnd類的Create函數(shù) 調(diào)用 CreateEx函數(shù); CFrameWnd類的LoadFrame函數(shù)調(diào)用Create函數(shù)】,CWnd類派生出CFrameWnd類。

Wnd對(duì)象與Windows的窗口不同,但是兩者有緊密聯(lián)系。CWnd對(duì)象是由CWnd的構(gòu)造函數(shù)析構(gòu)函數(shù)創(chuàng)建或銷毀的。另一方面,Windows的窗口是Windows的一種內(nèi)部數(shù)據(jù)結(jié)構(gòu),它是由CWnd的Create成員函數(shù)創(chuàng)建的,而由CWnd的虛擬析構(gòu)函數(shù)銷毀。DestroyWindow函數(shù)銷毀Windows的窗口,但是不銷毀對(duì)象。


顯示窗口與更新窗口:ShowWindow(SW_SHOW);
                UpdateWindow();
    【UpdateWindow 將WM_PAINT消息直接發(fā)送給窗口過程處理函數(shù)進(jìn)行處理,對(duì)窗口進(jìn)行刷新;當(dāng)窗口從無(wú)到有、改變尺寸、最小化后再恢復(fù)、被其他窗口遮蓋后再顯示時(shí),窗口的客戶區(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è)窗口的客戶區(qū)或者窗口上的某個(gè)控件無(wú)效,具體的名字與參數(shù)因場(chǎng)合不同 可能有不同)

【CFrameWnd類派生于CWnd類】
【各控件類CEdit、CBotton等都是派生于CWnd,所以控件其實(shí)也是窗口,所以他們其實(shí)也是通過Create函數(shù)創(chuàng)建,創(chuàng)建的過程是類似的】

消息循環(huán):CWinThread類的Run函數(shù)就是完成消息循環(huán)這一任務(wù);該函數(shù)的主要結(jié)構(gòu)是一個(gè)for循環(huán),該循環(huán)在接收到一個(gè)WM_QUIT消息時(shí)退出。

窗口過程函數(shù):

CWnd類:CWnd是MFC窗口類的基類,提供了微軟基礎(chǔ)類庫(kù)中所有窗口類的基本功能。CWnd對(duì)象與Windows的窗口不同,但是兩者有緊密聯(lián)系。CWnd對(duì)象是由CWnd的構(gòu)造函數(shù)和析構(gòu)函數(shù)創(chuàng)建或銷毀的。另一方面,Windows的窗口是Windows的一種內(nèi)部數(shù)據(jù)結(jié)構(gòu),它是由CWnd的Create成員函數(shù)創(chuàng)建的,而由CWnd的虛擬析構(gòu)函數(shù)銷毀。DestroyWindow函數(shù)銷毀Windows的窗口,但是不銷毀對(duì)象。
CFrameWnd類:CFrameWnd類往往用于創(chuàng)建應(yīng)用程序的主窗口,因?yàn)樗芎芎玫刂С窒到y(tǒng)菜單和控制條(工具條、狀態(tài)條等),為此定義了大量的成員函數(shù)和變量。在編寫文檔/視圖結(jié)構(gòu)的應(yīng)用程序時(shí),CFrameWnd作為主窗口管理視圖和文檔對(duì)象。視圖對(duì)象和控制條都成為CFrameWnd的子窗口,它們分享客戶區(qū),其位置被CFrameWnd有效地排列。CFrameWnd直接支持單文檔界面(SDI),對(duì)于多文檔界面(MDI),使用其派生類CMDIFrameWnd和CMDIChildWnd。該類定義了兩個(gè)成員函數(shù)用于創(chuàng)建主窗口,即Create()和LoadFrame()。前者主要通過CWnd::CreateEx()創(chuàng)建窗口;而后者首先組織參數(shù),再調(diào)用前者。它們的定義如下:


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产不卡视频 | 久久欧美高清二区三区 | 一区二区国产精品 | 欧美video| 亚洲精品一区二区三区蜜桃久 | 国产乱码精品1区2区3区 | 欧美video| 天天看夜夜 | 亚欧洲精品在线视频免费观看 | 天天综合永久入口 | 欧美成人猛片aaaaaaa | 国产精品99久久久久久www | 91n成人 | 久久99蜜桃综合影院免费观看 | 欧美精选一区二区 | 国产精品91网站 | 国产免费又黄又爽又刺激蜜月al | 午夜激情在线视频 | 国产欧美一级二级三级在线视频 | 久久这里只有精品首页 | 伊人电影院av | 精品久久久久久红码专区 | 精品av久久久久电影 | 久久久久久九九九九 | 久久精品国产a三级三级三级 | 九九热精品视频 | 成年人黄色小视频 | 欧美一区二区视频 | 婷婷在线免费 | 91久久久精品国产一区二区蜜臀 | 久久久久久久久久久91 | 一区二区久久精品 | www.成人在线视频 | 成人在线免费网站 | 午夜噜噜噜 | 91成人精品 | 亚洲狠狠爱 | www.99精品| 91亚洲视频在线 | 日韩免费中文字幕 | 国产精久久久久久久 |