mfc相關技術說明:
《可參閱msdn mfc tno 3>
mfc物件與控制代碼的對映關係
說明: mfc使用c++物件封裝win32控制代碼(作業系統資源排程單元 handle),所以在概念上一定要把mfc中的關於c++物件和win32控制代碼物件的概念區分開來,以下討論就是mfc c++物件如何封裝關聯控制代碼
相關函式與技術:
1 fromhandle()
fromhandle(handle handle);//mfc 類成員的靜態方法
用於建立乙個與控制代碼關聯臨時有效的mfc物件
ie:cwnd *pwnd = cwnd::fromhandle(hwndobject);
注意這裡建立的臨時物件可能在離開它的作用域之後,就被刪除掉
因為在cwinthread的預設的onidle()函式的處理中會呼叫
deletetempmap()
將這些mfc
物件從handle
上detach
掉並釋放堆記憶體
注意:這是mfc提供的一種記憶體**機制
2 attach()
建立乙個持續有效
(permanent persistent)的mfc物件的方法
先建立乙個
mfc物件再呼叫成員函式attach(handle);
這時候建立的物件是持續關聯到
mfc物件的
注意此時如果銷毀
mfc物件(如乙個區域性變數離開其作用域)時會預設的銷毀控制代碼
如果這不是想要達到的效果的話在銷毀
mfc物件的時候 先將mfc物件和控制代碼脫離
detach()
3 mfc物件執行緒相關性
無論臨時或持續化的
mfc物件都是執行緒相關的 所以無法獲取另乙個執行緒的這種與控制代碼關聯的mfc物件,所以不同的執行緒之間如果想對同一控制代碼所指向的物件進行操作最好是傳遞控制代碼物件而不是這種關聯的mfc物件
4 常見的控制代碼物件
(handle object)與mfc 物件的對映關係
MFC 物件與Win32 SDK 控制代碼的對映關係
可參閱msdn mfc tno 3 mfc 物件與 win32 sdk 控制代碼的對映關係 說明 mfc使用c 物件封裝win32控制代碼 作業系統資源排程單元 handle 所以在概念上一定要把mfc中的關於c 物件和win32控制代碼物件的概念區分開來,以下討論就是mfc c 物件如何封裝關聯控...
Win32 SDK學習筆記3
1 思考一下,視窗程式中為什麼要註冊視窗類?你想建立什麼樣的視窗呢?那麼,建立什麼樣的視窗呢?建立前,window系統可不知道你要的是什麼型別的視窗啊 比如標題欄上顯示什麼圖示,滑鼠形狀是什麼,視窗背景顏色等等 這些型別資訊應在你建立前事先告訴window系統。可以採用這種方法 就是我們事先寫乙份要...
win32 sdk繪製矩形選擇框
普通的繪製會留下 痕跡 但windows程式設計第五版的5.3.8節提到了乙個繪圖模式的概念.具體內容就是我們可以通過呼叫setrop2函式對繪圖模式的設定,預設是r2 copypen,即畫筆畫素覆蓋背景畫素.注意這裡是對畫筆的繪圖模式進行設定,對畫刷沒用影響,所以只能老實的用線條畫矩形 setro...