MFC中注意的幾件事

2021-07-06 09:56:35 字數 942 閱讀 3821

1 子類化

其實我覺得這個名字起的不好,容易讓人誤解。因為類這個概念只有到物件導向程式設計語言這層才有意義。而實際上,子類化跟物件導向沒關係。它的本質就是把視窗的視窗過程換成自己的,這使得自己也有機會去處理視窗訊息,自己不感興趣的,再交由原視窗過程處理。而這個「自己」,即可以是派生的子類,也可以是跟它沒有任何關係的乙個東東(可能是包含它的乙個父類,或者跟類就沒關係的乙個東東)。

2 子類覆蓋訊息對映表的問題

子類已經覆蓋了,當然會呼叫子類的,子類沒有覆蓋才去找父類的。每個類(當然包括父類、子類)都會有自己的訊息對映表,訊息對映函式就是普通的函式,mfc用訊息對映表實現了類似虛函式多型的功能。

3 自繪控制項

在資源管理器中拖拽乙個customctrl和你不拖拽,而只是初始化時create的區別。前者是屬於編譯時就建立好了資源,面後者是執行時動態建立資源。共同點是,都得子類化,方法是ddx_control或者subclasswindow或者直接setwindowlong。

4 invalidate updatewindow showwindow redrawwindow區別

invalidate只是標記某區域無效而已。訊息佇列有個特性,當裡邊訊息處理完時,它會檢查一下視窗是不是有無效區域,有的話發出乙個wm_paint訊息。

updatewindow 檢測有沒有無效區域,有的話sendmessage(wm_paint),很清楚吧,我說的是send哦,***。

showwindow更改視窗的顯示狀態,你讓視窗忙活半天搞重繪,沒準人家處於隱藏狀態呢,至少也得sw_show出來吧,否則就是無用功。

redrawwindow預設效果是invalidate和updatewindow二合一,當然具體還得看引數。

以上是自己的一點感悟,不知道此刻的你看完了,是否有一些收穫呢。

傷自尊的幾件事

傷自尊 記得小時候屬於人見人愛那種小孩子,尤其是父母的同事們特別喜歡,總教我唱歌跳舞啥的。十幾年過去了,有天有位叔叔和我媽在街上碰到了,他們兩個相當意外,也很高興。當我媽就介紹了一下我,這位叔叔瞅了我好幾眼,喃喃的說了 啊!十多年沒見,咋長成這樣了!真傷自尊啊!做運動去 年夏天的乙個傍晚,沒事幹和l...

Python 編碼時應該注意的幾件事情

在程式設計過程中,多了解語言周邊的一些知識,以及一些技巧,可以讓你加速成為乙個優秀的程式設計師。對於python程式設計師,你需要注意一下本文所提到的這些事情。你也可以看看 zen of python python之禪 這裡面提到了一些注意事項,並配以示例,可以幫助你快速提高。1.漂亮勝於醜陋 實現...

人生最重要的幾件事

時間是唯一的稀缺資源 先聽乙個故事 有乙個國度,每個人早上醒來賬戶裡都有86400元錢,然後每個人都必須花完,否則第二天零點賬戶自動清零,然後重新給你86400元錢,你會怎麼做?你可能會覺得很扯淡,但我們也是這樣的,只不過給的不是現金,而是時間,我們每天都有86400秒,你會怎麼做?我很欣賞 木星上...