線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:6648
推到 Plurk!
推到 Facebook!

如何得到HWND

尚未結案
fnk
高階會員


發表:40
回覆:149
積分:102
註冊:2004-01-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-31 22:58:51 IP:140.124.xxx.xxx 未訂閱
各位大大...大家好... 想請問一下.. 在bcb中...我們可以用Form1->Handle來得到Handle... 但..這個型態不是傳統寫Windows API所得到的HWND的型態... 是不是有什麼樣的函式...可以來做這二者之間的轉換咩.. =========== 有興趣,就能進步 =========== 發表人 - taishyang 於 2005/03/31 23:36:39
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-01 12:16:08 IP:219.137.xxx.xxx 未訂閱
fnk 您好:    我對這個題目也蠻有興趣的,您先看看這一篇以 Delphi 為例的文章,看是否能供您做部分的參考?    http://delphi.ktop.com.tw/topic.php?topic_id=61654
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-01 20:00:58 IP:211.76.xxx.xxx 未訂閱
引言: 各位大大...大家好... 想請問一下.. 在bcb中...我們可以用Form1->Handle來得到Handle... 但..這個型態不是傳統寫Windows API所得到的HWND的型態... 是不是有什麼樣的函式...可以來做這二者之間的轉換咩..
fnk你好: 請問你如何確知Form1->Handle和Windows的Handle是不同的?
fnk
高階會員


發表:40
回覆:149
積分:102
註冊:2004-01-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-02 02:36:35 IP:140.124.xxx.xxx 未訂閱
引言: fnk你好: 請問你如何確知Form1->Handle和Windows的Handle是不同的?
pwipwi 大大您好 !! 應該這樣子說...我使用一個做影像處理的軟體..叫OpenCV.. 裡頭有一個函式..叫cvcamSetProperty... 其中有一個參數是要給視窗的Handle... 原型宣告是這樣子的.. cvcamSetProperty(int cameraindex, const char* property, void* value) 最後一個參數就是要給視窗的Handle... 它的Manual是講...是要給HWND..這樣的type... 我給它Form1->Handle... 結果就出現問題... 所以我就在猜想...問題應該出在Form1->Handle的型態不是HWND... 但是若不指定的話... 程式會自動產生一個視窗..來顯示擷取到的影像... 其實我是想透過這個指令來指定程式能顯示在我想要顯示的地方... 比如說..Form或是Panel上.... 不知各位大大有沒有什麼其它的方式...可以解決這樣的問題... 謝謝勒... Orz.... =========== 有興趣,就能進步 ===========
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-02 12:09:04 IP:211.76.xxx.xxx 未訂閱
fnk你好: 試試以下的方法,看能否解決問題。  
 
HWND handle = Form1->Handle;
cvcamSetProperty(0, CVCAM_PROP_WINDOW, &handle);   
發表人 - pwipwi 於 2005/04/02 12:14:08
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-04-02 12:33:21 IP:61.228.xxx.xxx 未訂閱
fnk 你好:    如同pwipwi所說的如何確知Form1->Handle和Windows的Handle是不同的? 我做了以下簡單的測試
HWND hwnd;
HDC hdc;
hwnd=Form1->Handle;
hdc=GetDC(hwnd); //WINDOWS API 函式
SetPixel(hdc,10,10,RGB(255,0,0)); //WINDOWS API 函式
以上會顯示一個紅點在Form1上,因此可以得知Form1->Handle和Windows的Handle是相同的. 所以問題因該是出在影像處理軟體應用上,是否說明上你沒有弄清楚,或者他並不支援顯示在子視窗上(form,panel or other object),畢竟程式是別人寫好的,我們無法得知他內部的做法. 另外試看看給他主視窗的HANDLE (Application->Handle).
fnk
高階會員


發表:40
回覆:149
積分:102
註冊:2004-01-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-04-02 13:39:10 IP:140.124.xxx.xxx 未訂閱
引言: fnk你好: 試試以下的方法,看能否解決問題。
 
HWND handle = Form1->Handle;
cvcamSetProperty(0, CVCAM_PROP_WINDOW, &handle);   
感謝Pwipwi大大...問題解決了.. 確實可以這樣使用... 不好意思..請問一下..Pwipwi大大是不是也有使用過OpenCV咩... =========== 有興趣,就能進步 ===========
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-04-02 18:15:02 IP:211.76.xxx.xxx 未訂閱
沒用過... 我是查google了解呼叫方式。 然後猜想你可能直接就把handle傳進去吧..
系統時間:2024-05-03 17:45:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!