關於handel的問題 |
答題得分者是:wyndog
|
cliffpen
一般會員 發表:35 回覆:18 積分:15 註冊:2005-05-16 發送簡訊給我 |
請問各位大大
在使用win32 API時,常會用到handle
例如: HWND , HDC
1. 這兩種都是得到handle,可是這兩種有什麼不同嗎? 2. 如果我宣告:
HWND hWnd;
==>這樣是不是就是代表得到視窗的handle? 3. 如果我又宣告:
HWND hWnd=Form1->Image1->Picture->Bitmap->Handle;
==>那這樣是不是代表我得到了Image1的handle? 4. 如果是下面這樣:
HDC hdc=GetDC(0);
==>是不是代表我得到了視窗的handle,可是這樣和hWnd有不同嗎?
|
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
(1) 從文字上來說
hWnd 是 Window 的 Handle、hDC 是 DC 的 Handle
其實上他們的確都是 Handle
之所以有名稱的區別,是為了便於閱讀 舉個例子來說,以黑羊跟白羊過橋的故事來說的話
黑羊跟白羊都是羊(Handle),不作區分的話,那故事不就變成
有天有一隻羊(Handle)要過橋,有一隻羊(Handle)擋到牠的路
羊就說我要先過橋,羊則說為什麼不我先過
這樣到你根本搞不清楚這隻羊是哪隻羊
如果用了黑羊跟白羊做區分,這樣你就知道誰是誰了 同理,我們用了 hWnd 就知道他是 Window 的 Handle
你就不會拿來給 DC 相關 API 使用,反之亦然 (2) HWND hWnd;
只是說 hWnd 是 Window 的 Handle
並不表示就可以得到視窗的 Handle
就跟 int Money; 只是說 Money 是個整數,並不是就可以得到金額一樣 (3) HWND hWnd=Form1->Image1->Picture->Bitmap->Handle;
hWnd 得到的是 Image1 中那個 Bitmap 的 Handle
並不是得到 Image1 的 Handle,這裡頭不一樣哦 (4) hDC = GetDC(0);
這樣是得到 DC 的 Handle 不是得到 Window 的 Handle 哦 還有一些本來要提的
不過,看來你對 DC、Window、Handle 的觀念還蠻模糊的
建議你去找本 Windows Programming 的書研讀一下
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |