ATL視窗實現的學習

2021-08-26 22:39:48 字數 564 閱讀 8050

昨晚看了《mfc程式設計師的wtl教程》的第一章atl的視窗實現,有以下感覺:

1. 感覺atl的視窗實現比mfc輕便多了。

2. atl視窗類的擴充套件機制比mfc的視窗類擴充套件機制要好。mfc的視窗類擴充套件採用的傳統的c++的虛函式的機制(除開訊息分發部分)。atl採用類模板的機制,在保持物件導向特徵的同時具有更高的執行效率。書中的那句例程:

chain_msg_map(cpaintbkgndbase)

該句**的意思是任何到達 cmywindow 對映而沒有處理的訊息將被傳遞到cpaintbkgnd的對映中。個人感覺這樣寫並不十分恰當,我覺得更好的寫法是:

message_handler

(wm_erasebkgnd

,cpaintbkgndbase

::onerasebkgnd)

這樣更能體現atl類的擴充套件特徵。

3.atl比起mfc的稍微不便的地方是需要手動新增訊息處理巨集,以及 訊息處理函式中需要分清wparam wparam和lparam lparam兩個引數的意義。不過我覺得對於具有mfc基礎和win api基礎的程式設計師而言,這一點不會不算什麼困難。

登入視窗實現

中間視窗的標題欄 中間視窗的內容區 中間視窗的內容區 中間視窗的內容區中間視窗的內容區 中間視窗的內容區中間視窗的內容區 中間視窗的內容區中間視窗的內容區 中間視窗的內容區中間視窗的內容區 中間視窗的內容區中間視窗的內容區 中間視窗的內容區中間視窗的內容區 中間視窗的內容區 中間視窗的內容區 中間視...

duilib 滑動顯示的視窗實現

經jhgwqp csdn提醒,將這事做了.編譯環境 vs2010 vc duilib 效果圖 預覽 建立彈出的滑動對話方塊時,要以子視窗風格建立,這樣,主視窗移動時,我們就不用負責子視窗的位置移動了.cpp view plain copy void cmaindlg createdlgsliding...

滑動視窗實現訪問頻率限制

主要思路有兩個 以時間戳為有序集合的成員 每次請求,先使用zremrangebylex命令移除視窗外的成員 使用zrange命令獲取有序集合的成員和相應權重 使用zincrby命令對相應的成員的權重加一 使用expire命令重新設定有序集合有效期 對獲取到的有序集合的成員的權重求和,並判斷是否超過閾...