SendMessage 可以傳訊息給 非視窗的元件嗎?? |
答題得分者是:jcjroc
|
moritao
一般會員 ![]() ![]() 發表:8 回覆:5 積分:2 註冊:2007-03-01 發送簡訊給我 |
|
aftcast
站務副站長 ![]() ![]() ![]() ![]() ![]() 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
|
moritao
一般會員 ![]() ![]() 發表:8 回覆:5 積分:2 註冊:2007-03-01 發送簡訊給我 |
不能在 class 中的property加入 HWND handle;的變數嗎?
讓這個class 變數也能收訊息 像這樣 class MStk: public MBase { private: void __fastcall WMP_STOCK_QUOTE(TMessage &Message); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_STOCK_QUOTE, TMessage, WMP_STOCK_QUOTE); END_MESSAGE_MAP(MStk); public: HWND handle; __fastcall MStk(AnsiString strID); __fastcall ~MStk(void); }; 還是一定要視窗元件 才可以? |
aftcast
站務副站長 ![]() ![]() ![]() ![]() ![]() 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
CLASS中當然可以加任何型別的property,只是以你這個class來說,加入這樣的property為的是什麼? 該如何把值設定進去? 我猜測的是你想讓使用者把它的form的handle設定進去嗎?
就算是,那也沒有幫助。比如說你把form1的handle代入你這個class,然後另一個form2去sendmessage給這個handle,那收message的人還是form1本身,不是你的class。 如果說你的property的值是自己定的,那就更有問題了。windows 的handle要由os來發配才有用。 我只能說,如果你把MBase 換成 TForm 那就ok。 ===================引 用 moritao 文 章=================== 不能在 class 中的property加入 HWND handle;的變數嗎? 讓這個class 變數也能收訊息 像這樣 class MStk: public MBase { private: void __fastcall WMP_STOCK_QUOTE(TMessage &Message); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_STOCK_QUOTE, TMessage, WMP_STOCK_QUOTE); END_MESSAGE_MAP(MStk); public: HWND handle; __fastcall MStk(AnsiString strID); __fastcall ~MStk(void); }; 還是一定要視窗元件 才可以?
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
jcjroc
高階會員 ![]() ![]() ![]() ![]() 發表:21 回覆:279 積分:115 註冊:2002-09-18 發送簡訊給我 |
|
moritao
一般會員 ![]() ![]() 發表:8 回覆:5 積分:2 註冊:2007-03-01 發送簡訊給我 |
我原本的想法是想在收到資料時
能用SendMessage的方式,把我的資料傳給我自訂的class去處理 才想到用成像是event driven的方法 如果自訂的非視窗class 不能加入handle 有其它的方法 可以產生event 來通知 自訂的class 做處理嗎? 謝謝 ===================引 用 aftcast 文 章=================== CLASS中當然可以加任何型別的property,只是以你這個class來說,加入這樣的property為的是什麼? 該如何把值設定進去? 我猜測的是你想讓使用者把它的form的handle設定進去嗎? 就算是,那也沒有幫助。比如說你把form1的handle代入你這個class,然後另一個form2去sendmessage給這個handle,那收message的人還是form1本身,不是你的class。 如果說你的property的值是自己定的,那就更有問題了。windows 的handle要由os來發配才有用。 我只能說,如果你把MBase換成TForm 那就ok。 ===================引 用 moritao 文 章=================== 不能在 class 中的property加入 HWND handle;的變數嗎? 讓這個class 變數也能收訊息 像這樣 HWND handle; __fastcall MStk(AnsiString strID); __fastcall ~MStk(void); }; 還是一定要視窗元件 才可以? |
jcjroc
高階會員 ![]() ![]() ![]() ![]() 發表:21 回覆:279 積分:115 註冊:2002-09-18 發送簡訊給我 |
|
moritao
一般會員 ![]() ![]() 發表:8 回覆:5 積分:2 註冊:2007-03-01 發送簡訊給我 |
如果我的MBase 物件 都去繼承 TWinControl
這樣會造成很大的額外系統負荷嗎? 因為我有蠻多物件都是 以MBase 為基礎的 怕這樣做效能會降低很多 還是有其它解決方法 謝謝 ===================引 用 jcjroc 文 章=================== 繼承自TControl 然後呼叫Perform ===================引 用 moritao 文 章=================== 我原本的想法是想在收到資料時 能用SendMessage的方式,把我的資料傳給我自訂的class去處理 才想到用成像是event driven的方法 如果自訂的非視窗class 不能加入handle 有其它的方法 可以產生event 來通知 自訂的class 做處理嗎? 謝謝 |
jcjroc
高階會員 ![]() ![]() ![]() ![]() 發表:21 回覆:279 積分:115 註冊:2002-09-18 發送簡訊給我 |
1.是TControl 不是TWinControl
2.依你的需求............你要的是一個可以因不同Command來解譯資料或執行動作的Decoder function,為何跟Windows的訊息機制搞在一起???會不會想得太複雜些???? ===================引 用 moritao 文 章=================== 如果我的MBase 物件 都去繼承 TWinControl 這樣會造成很大的額外系統負荷嗎? 因為我有蠻多物件都是 以MBase 為基礎的 怕這樣做效能會降低很多 還是有其它解決方法 謝謝 ===================引 用 jcjroc 文 章=================== 繼承自TControl 然後呼叫Perform ===================引 用 moritao 文 章=================== 我原本的想法是想在收到資料時 能用SendMessage的方式,把我的資料傳給我自訂的class去處理 才想到用成像是event driven的方法 如果自訂的非視窗class 不能加入handle 有其它的方法 可以產生event 來通知 自訂的class 做處理嗎? 謝謝 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |