評價: 0 回應: 1 閱覽: 168
置頂

MFC 在 Thread 中使用控件的相關問題

小弟有請個問題想請教板上C的神人

1.在使用AfxBeginThread()時,到底是傳this進去還是傳this->GetSafeHwnd()比較好?

2.如果傳this,要如何知道哪些關於控件的function不能使用? Ex:UpdateData()..

  P.S.我知道可以透過SendMessage()去做UpdateData()

3.如果傳HWND,透過FromHandle去拿CWnd,控件的function可以使用。Ex:UpdateData()

  但是呼叫AfxBeginThread()的class本身的成員變數卻都沒辦法使用了。Ex:CString...

  這樣是正常的嗎?

4.一般如果在Thread裡面要用到控件,例如讀取控件的Value或者設定控件的Value,難道

  都是透過送訊息的方式嗎?

熱門回應

mfc 把對應關係的 handle map 存在 TLS 裡面

通常 assert應該都是用來確認它沒有跨執行序使用 (跨了 TLS 就找不到)

FromHandle 傳回來的只是一個 CTempWnd 相當於 CWnd

如果你有一個 class 繼承 CWnd 然後用它傳回物件

想存取那個 class 特有的資料會引發錯誤

這是因為 CTempWnd 沒有那些多出來的資料造成的

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言