欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3009|回復: 0
收起左側

MFC 程序

[復制鏈接]
ID:60266 發表于 2014-8-18 01:09 | 顯示全部樓層 |閱讀模式
MFC中,各控件的類都是從窗口類CWnd派生出來的,所以控件是一窗口的一種;

[size=133%]Ø什么是對話框?
Ø對話框就是一個Dialog控件,和其他的控件不同的是,Dialog控件有自己的消息循環和Dialog回調處理程序。




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

在MFC程序設計中,為了設計的方便,在MFC的“底層框架類”中封裝了每一個窗口應用程序都需要的各步驟;

窗口的創建: CWnd類的CreateEx函數實現【CFrameWnd類的Create函數 調用 CreateEx函數; CFrameWnd類的LoadFrame函數調用Create函數】,CWnd類派生出CFrameWnd類。

Wnd對象與Windows的窗口不同,但是兩者有緊密聯系。CWnd對象是由CWnd的構造函數析構函數創建或銷毀的。另一方面,Windows的窗口是Windows的一種內部數據結構,它是由CWnd的Create成員函數創建的,而由CWnd的虛擬析構函數銷毀。DestroyWindow函數銷毀Windows的窗口,但是不銷毀對象。


顯示窗口與更新窗口:ShowWindow(SW_SHOW);
                UpdateWindow();
    【UpdateWindow 將WM_PAINT消息直接發送給窗口過程處理函數進行處理,對窗口進行刷新;當窗口從無到有、改變尺寸、最小化后再恢復、被其他窗口遮蓋后再顯示時,窗口的客戶區都將變為無效,此時系統會給應用程序發送WM_PAINT消息,我們也可以手動調用UpdateWindow函數(該函數會發送),我們呢也可以調用Invalidate(使整個窗口的客戶區或者窗口上的某個控件無效,具體的名字與參數因場合不同 可能有不同)

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

消息循環:CWinThread類的Run函數就是完成消息循環這一任務;該函數的主要結構是一個for循環,該循環在接收到一個WM_QUIT消息時退出。

窗口過程函數:

CWnd類:CWnd是MFC窗口類的基類,提供了微軟基礎類庫中所有窗口類的基本功能。CWnd對象與Windows的窗口不同,但是兩者有緊密聯系。CWnd對象是由CWnd的構造函數和析構函數創建或銷毀的。另一方面,Windows的窗口是Windows的一種內部數據結構,它是由CWnd的Create成員函數創建的,而由CWnd的虛擬析構函數銷毀。DestroyWindow函數銷毀Windows的窗口,但是不銷毀對象。
CFrameWnd類:CFrameWnd類往往用于創建應用程序的主窗口,因為它能很好地支持系統菜單和控制條(工具條、狀態條等),為此定義了大量的成員函數和變量。在編寫文檔/視圖結構的應用程序時,CFrameWnd作為主窗口管理視圖和文檔對象。視圖對象和控制條都成為CFrameWnd的子窗口,它們分享客戶區,其位置被CFrameWnd有效地排列。CFrameWnd直接支持單文檔界面(SDI),對于多文檔界面(MDI),使用其派生類CMDIFrameWnd和CMDIChildWnd。該類定義了兩個成員函數用于創建主窗口,即Create()和LoadFrame()。前者主要通過CWnd::CreateEx()創建窗口;而后者首先組織參數,再調用前者。它們的定義如下:


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表