Re: [問題] SendMessage
※ 引述《ghkckhg (行人)》之銘言:
: VC6.0 MFC
: 對於SendMessage這個函式,
: 我和我同事始終不懂為何不直接呼叫就好(或許會多一兩道工)?
: 反正兩者都會等待執行完畢,
: 而且直接呼叫明確許多。
: 我觀察到這個語法在Multi-Thread好像比較常出現,
: 但還是不知道為什麼...
: 有什麼樣的時機只有SnedMessage適合使用呢?
: 謝謝~
我目前是這樣用,也許有更好的用法。
當你使用 SendMessage 時,你不用管你的 Window 是誰。
甚至你也不太需要管有沒有人去接到這個 message。
這樣會有甚麼效果,就封裝來說這是一件好事,
1.你不用因為妳的 function 名稱改了而大動手腳。
比方說你在 class 中取了一個 function 名稱叫 "DoSomeThing()"
然後有20個地方需要用到,天殺了那天你覺得這個名稱需要修正,
於是你就需要從 compiler 那邊進行偵錯在修改,花了很多時間然後才處理結束。
但是如果你用 sendMessage 你需要改的只有
BEGIN_MESSAGE_MAP()
...
...
END_MESSAGE_MAP()
這一個地方而已,整個都輕鬆起來了( 寫過 mfc 的應該知道這是甚麼 )
2.當你10 個 window 都都透過某個元件 update 的時候,你不會希望
你用10個不同類別的 pointer 去指向各個式窗然後再用(->) 去處理,
而是可以用 CWnd 這個基礎類別去接所有的需要的視窗,
甚至還可以用一個迴圈跑完十個式窗通通都 SendMessage( UPDATEWINDOW );
目前我的認知是為了要鬆綁客視窗之間的處理,不會因為要更動些甚麼而產生許多的錯誤
當然我覺得我說的不太好,也許有人有更好的講法跟解釋。
不過一開始我也覺得為啥還要在一個 SendMessage 這個多餘的東西 XD
後來想想你有非同步的東西自然就會需要有個同步的東西,這是很合理的事情。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.243.18.85
推
10/09 10:15, , 1F
10/09 10:15, 1F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章