最近在寫一些關于MFC的東西,是因為做了些MFC的項目,一些零散的東西需要總結一下。但這并不代表我有些喜歡他了,其實還是蠻討厭的。畢竟看了.Net Framework,再看N多年前的MFC,多少是有些不順眼的。機理上的東西不敢多說,有些變量和方法名字的設置,站在FCL的設計角度看了,多少覺得有些不爽。也許是我太弱,也許是因為它的設計上考慮還是沒有足夠的經驗,列舉一些,娛樂娛樂。
1. 在構造一個自定義的Dialog對象時,我們會傳入一個CWnd的指針進去,那個名為pParent的對象。但當我在Dialog中調用GetParent函數的時候,無論傳進的是什么指針(比如CYourView),得到的返回值都是指向CMainFrame的指針。曾經由于這個我調了N久的程序,我承認這是由于我對MFC的了解不夠造成的,但這名字也太具有迷惑性了吧。
2. 當然還有臭名昭著的UpdateData函數,很榮幸在這點上我和大師一樣,每次用到的時候都要停下來查看一下才能分清楚那個詭異的bool變量的意義。也許這在有IDE的時候不是問題,但問題是我看書的時候就會很麻煩了。分離成兩個明確命名的函數,也許會好很多。
3. ShowWindow。恩就是它??吹竭@個名字,不熟悉MFC的人應該都會覺得它是用來顯示一個窗口的。但...,其實它兼有顯示和隱藏窗口的功能,決定這一切的又是一個詭異的bool量...
4. MoveWindow和SetWindowPos。這一對不夠專注的兄弟。它們太強大了,所能做的事遠不止Move和SetPos那么簡單,當我想改變一個窗體大小的時候,我翻來覆去的找函數,萬萬沒想到,原來是這對名不副實的兄弟的工作,Faint...
5. GetWindowRect和GetClientRect。其實他們也許沒有問題,有問題的是我,我不喜歡用引用量代替一個貌似應該由返回值完成的東西...
6. SelectObject。為什么你傳入一個新的Object,它返回一個老的Object呢?不止我一個人,很多人都被這個搞暈過,其實我也不明白,一個函數做兩個函數的事,這確實有點熱心過度了吧...
7. afx_msg。一個永遠都沒被用到的預留量,這樣的東西在MFC中有很多...
文章來源:
http://www.cnblogs.com/duguguiyu/archive/2007/06/21/792426.html
posted on 2007-06-21 23:18
duguguiyu 閱讀(221)
評論(0) 編輯 收藏 引用 所屬分類:
MFC