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