mfc幫我們和windows對話,MFC是個服務公司
MFC相當於一些第三產業,比如餐館.比如企業ISO9000認證諮詢公司.比如營業執照代辦機構.
所有的原因是因為這些東西都很複雜,所以我們引進了MFC來幫我們的忙.
其實跟認證諮詢公司幫我們準備報表,然後幫我們聯絡認證機構一樣.MFC就是通過API和WINDOWS這個上帝進行交流.我們自己可能記不住怎麼和上帝聊天的規範,但MFC知道那些流程.如果你自己會講你在MFC幫你說的時候你也可以自己插嘴說兩句,這樣直接一點.
先講講跟WINDOWS上帝說話的時候的要素. 最關鍵的是控制代碼(記憶體位址),因為在WINDOWS的概念裡只有記憶體空間地址. 比如你求WINDOWS幫你在你的程式的視窗上寫一個字(記住,其實是WINDOWS幫你寫的,別以為寫上幾個代碼就會在螢幕上寫字),那你得告訴WINDOWS 你的視窗記憶體的地址,然後告訴它在什麼座標上. 這個時候WINDOWS 就找到那個記憶體位址,然後 通過座標計算出相對空間位置加上記憶體位址, 這時候就在那裡寫上字. 然後其他的部門(顯示驅動程式)會把字寫到螢幕上
上面的操作,如果你自己跟WINDOWS說,那得做兩件事,第一件是獲得控制代碼,第二件申請.
如果叫MFC做,他在VIEW裡面給你一個CDC指標,你只要叫CDC的成員函數幫你TEXTOUT就可以了,控制代碼它會幫你搞定.
程式是一個進程,你的程式分配到的記憶體被包成一個整體,你在程式裡得到的指標是從0開始的相對指標,控制代碼是絕對指標.控制代碼是在你向WINDOWS對話的時候用的.平時自己用的時候只要用相對指標就可以了.MFC就是幫你隱藏絕對指標,讓你覺得你的世界是從0開始的完美的世界.可偏偏有些時候還是被我們發現,老鳥覺得很自然,新手就困惑了,為什麼要用控制代碼.如果你想讓WINDOWS給你做事他用的是控制代碼,就好比美圓是國際通用的.如果你在自己的程式國家裡做什麼用用人民幣,如果你想用人民幣在國外買東西,那就得找銀行兌換.MFC也有這樣的功能,而且還可以幫你代理做任何事情.就好比網上購物一樣,但你進行的是虛擬操作,你看到的也只是產品的圖片.