c# – 什麼是“控制代碼”?
Possible Duplicates:
07000
07001
我看到對視窗控制代碼的引用,具有對視窗控制代碼的引用的控制元件等等.但是我不知道什麼是控制代碼.
我特別想知道它是什麼,以及任何相關的細節,因為它屬於.NET.
控制代碼是作業系統的參考.它沒有程式設計參考的語義,但它做的是允許系統資源知道在API呼叫中傳遞時所指的內容.
通常,HANDLE包裝在一個類的例項中. CWnd是一個很好的例子,它包含一個HWND,它是一個視窗的控制代碼.
你可以這樣做. CWnd * pWnd = CWnd :: FromHandle(hWnd)注意:CWnd :: FromHandle(hWnd)是靜態的,不需要一個例項.
它會傳回你包裝的包裝器.好不好!如果控制代碼實際上沒有被物件包圍,那麼它將建立一個物件,並且它將僅僅是臨時的.所以使用它一次然後將其丟棄.它可以建立例項,因為hWnd在其結構中有足夠的資訊用於Windows例項化CWnd物件.它不會將它新增到控制代碼v物件表中,所以它只是暫時的.
HWND實際上是一個核心物件,而且更多? HWND(CWnd和CWnd派生類)HDC(CDC和CDC派生類)HMENU(CMenu)HPEN(CGdiObject)HBRUSH(CGdiObject)HFONT(CGdiObject)HBITMAP(CGdiObject)HPALETTE(CGdiObject)HRGN(CGdiObject)HIMAGELIST(CImageList) SOCKET(CSocket)(應該是HSOCKET?)其他.
我不知道如果所有這些都會傳遞一個臨時物件,如果需要的話.
GetDC(hWnd)將會從hWnd獲取一個hDC,但它將是臨時的,最好使用CDC claa.
閱讀更多:ofollow,noindex" target="_blank">http://wiki.answers.com/Q/What_is_a_handle_in_Windows_Programming#ixzz1JBmoF0lv
http://stackoverflow.com/questions/5616988/what-is-a-handle