<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    superwei

    導航

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統計

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    深入淺出MFC》學習筆記之一

    深入淺出MFC》學習筆記之一- -

    Tag深入淺出MFC》學習筆記之一                                          

    《深入淺出MFC》學習筆記之一
                                               作者:XGM   RRC.BIT 記于2001-8-10

                 
                 
                   
                龔建偉評:這篇學習筆記雖然不是系統的闡述某個問題,但讀來讓人感到收獲不小,無論你是老鳥還是菜鳥,都會認同的。我希望XGM能夠繼續寫下去,看了《深入淺出MFC》再來看這些筆記,也有溫故知新之感
                俟杰先生的《深入淺出MFC》是一本好書,本人是作為有一定C++基礎知識并對VC有一點感性認識的VC初學者來接觸這本書的。應該說這本書并不真正適合像我這樣的初學者,但通讀完該書,還是有一些收獲的,現只整理其中的一部分,作為我的一個學習筆記吧。
                1.  安裝VC++,為什么要先安裝Internet
                Explorer?(是不是很多老鳥也不知道啊,侯俊杰先生的宗旨就是知其然,還要知其所以然,5555555555 …………)
                因為微軟的所有Visual Tools(包括Visual C++、Visual Basic、Visual FoxPro、Visual
                J++、Visual InterDev等)都集中由所謂的Visual Studio
                管理,而這些工具有一個極大的目標,就是要協助開發Internet應用軟件,所以它們希望能夠和IE有所搭配。
                2.  SDK:Software Development Kit 原指軟件開發工具,但現在已經變成了一個專有名詞,凡以Windows
                raw API撰寫的程序通常也稱為SDK程序。也有人把Windows API稱為SDK API。
                3. 
                不同種類之對象的構造函數(對象誕生后第一個執行并且是自動執行的函數)及析構函數(對象行將毀滅,但未毀滅之前一刻,最后執行并且自動執行的函數)執行時機對比如下:
                        全局對象局部對象靜態對象以new產生的對象
                      構造函數程序一開始就執行(比程序進入點更早)對象誕生時執行
                      析構函數程序即將結束時執行程序流程離開該對象的存活范圍時執行程序將結束時執行,但比全局對象的析構函數早一步進行。對象被delete時執行

                4.  C++并不是純種的面向對象語言(SmallTalk 和
                Java才是)。所以,MFC之中得以存在有不屬于任何類的全局函數,它們統統在函數名稱開頭冠以Afx(x并沒有什么意思,只是為了湊成一個響亮的名字,Af即Application
                Framework)
                下面是常見的Afx全局函數:
                AfxBeginThread:開始一個新的線程
                AfxEndThread:結束一個舊的線程
                AfxFormatString1:類似printf一般地將字符串格式化
                AfxFormatString2:類似printf一般地將字符串格式化
                AfxMessageBox:類似Windows API 函數 MessageBox
                AfxOuputDebugString:將字符串輸往除錯裝置
                AfxGetApp:獲得application object (CwinApp派生對象)的指針
                AfxGetMainWnd:獲得程序主窗口的指針
                AfxGetInstance:獲得程序的instance handle


                5.  MFC數據類型
                下面這些是和Win32程序共同使用的數據類型
                BOOL:布爾值,取值為TRUE  or  FALSE
                BSTR:32-bit 字符指針
                BYTE:8-bit整數,未帶正負號
                COLORREF:32-bit數值,代表一個顏色值
                DWORD:32-bit整數,未帶正負號
                LONG:32-bit整數,帶正負號
                LPARAM:32-bit整數,作為窗口函數或callback函數的一個參數
                LPCSTR:32-bit指針,指向一個常數字符串
                LPSTR:32-bit指針,指向一個字符串
                LPCTSTR:32-bit指針,指向一個常數字符串,此字符串可以移植到Unicode和DBCS
                LPTSTR:32-bit指針,指向一個字符串,此字符串可以移植到Unicode和DBCS
                LPVOID:32-bit指針,指向一個未指定類型的數據
                LPRESULT:32-bit數值,作為窗口函數或callback函數的返回值
                UINT:在Win16中是一個16-bit 未帶正負號整數,在Win32中是一個32-bit 未帶   正負號整數,
                WNDPROC:32-bit指針,指向一個窗口函數
                WORD:16-bit 整數 ,未帶正負號
                WPARAM:窗口函數或callback函數的一個參數,在Win16中是16-bit,在Win32中是32-bit

                下面這些是MFC獨特的數據類型
                POSITION:一個數值,代表collection對象(例如數組或鏈表)中的元素位置,常 用于MFC collection
                classes(即數據處理類,如CArray)
                LPCRECT:32-bit指針,指向一個不變的RECT結構


                6.  奇怪的窗口類名稱Afx:b:14ae:6:3e8f
                   
               用Spy++(VC++所附的一個工具)觀察窗口類的名稱時,會發現窗口類名稱變成像Afx:b:14ae:6:3e8f這副奇怪的模樣?
                原來是Application Framework 把窗口類的名稱轉換為Afx:: x :y :z :w的類型,成為獨一無二的窗口類型名稱:
                x:窗口風格的hex值
                y:窗口鼠標光標的hex值
                z:窗口后臺顏色的hex值
                w:窗口圖標的hex值
                7.  Serializable   的必要條件
                讓一個對象有Serializable能力,它必須派生自一個Serializable類,一個類要成為Serializable,必須有下列五大條件:
                (1)從Cobject派生下來,如此一來,可保有RTTI、動態生成等機能
                (2)類的聲明部分必須有DECLARE_SERIAL宏,此宏需要一個參數:類名稱
                (3)類的實作部分必須有IMPLEMENT_SERIAL宏,此宏需要三個參數:一是類名稱,二是基類名稱,三是 schema no.
                (4)改寫Serialize虛擬函數,使它能夠適當地把類的成員變量寫入檔案中
                (5)為此類加上一個default構造函數(也就是無參數之構造函數),這個條件常為人所忽略,但它是必要的,因為若一個對象來自檔案,MFC必須先動態生成它,而且在沒有任何參數的情況下調用其構造函數,然后才從檔案中讀出對象數據。
                 
                唉,好東東實在太多了,比如對MFC六大關鍵技術之仿真,三大宏的內部揭密等等(咦,我不是在推銷這本書吧,呵呵)感興趣的話請看看這本書吧,可以找我借哦,所謂“書非借不能讀也”。呵呵………

    posted on 2005-11-01 14:38 小辭猬 閱讀(248) 評論(0)  編輯  收藏 所屬分類: C++


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 一区国严二区亚洲三区| 免费a级黄色毛片| 国产免费一区二区三区| 国产三级免费电影| 亚洲视频在线免费观看| 日韩毛片一区视频免费| 国产精品成人观看视频免费| 亚洲AV无码国产精品色午友在线| 亚洲av无码专区亚洲av不卡| 亚洲免费视频在线观看| 亚洲国产婷婷综合在线精品| 亚洲不卡1卡2卡三卡2021麻豆| 两个人看的www视频免费完整版| 精品国产免费一区二区| 亚洲精品乱码久久久久久下载| 国产精品免费观看视频| 国产麻豆免费观看91| 亚洲综合另类小说色区色噜噜| 中文无码亚洲精品字幕| 最近免费中文字幕大全免费| 亚洲精品无码乱码成人| 国产成人综合久久精品亚洲| 99在线精品免费视频九九视| 久久久久久亚洲精品影院| 国产男女猛烈无遮档免费视频网站 | 婷婷亚洲久悠悠色悠在线播放| 特级毛片爽www免费版| 日韩激情淫片免费看| 一区二区免费在线观看| 亚洲国产精品无码久久一区二区| 免费A级毛片在线播放| 国产免费卡一卡三卡乱码| 一级a性色生活片久久无少妇一级婬片免费放| 亚洲AV永久无码精品一区二区国产| 亚洲综合色婷婷在线观看| 18禁美女裸体免费网站| 亚洲成人在线网站| 男男AV纯肉无码免费播放无码| 亚洲黄色免费网站| 最近中文字幕mv免费高清在线 | 亚洲精品国产专区91在线|