Re: [問題] SendMessage

看板C_and_CPP (C/C++)作者 (大笨蛋... )時間13年前 (2012/10/08 22:35), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/5 (看更多)
※ 引述《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
文章代碼(AID): #1GSkJ0WK (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
7
26
完整討論串 (本文為第 4 之 5 篇):
1
1
7
26
1
2
2
6
文章代碼(AID): #1GSkJ0WK (C_and_CPP)