Re: [問題] 自訂訊息的問題(WM_USER) 用MFC
※ 引述《timohu ( )》之銘言:
: 我要利用SendMessage()從自訂執行緒把訊息傳回主執行緒
: 所以在開頭定義
: #define WM_FrameToViewToDoc WM_USER -31 (忘記WM_USER -31是在哪邊爬到的文章)
: 然後 //}}AFX_MSG_MAP
: ON_MESSAGE(WM_FrameToViewToDoc, FrameToViewToDoc)
: 在自訂執行緒中利用
: SendMessage(HWND_BROADCAST,WM_FrameToViewToDoc,0,0);
: 引發主執行緒的FrameToViewToDoc()
: 後來因為想要再自訂另一個訊息
: 所以又定義了#define WM_XXXXX WM_USER -30
: 可是用同樣的方法卻都無法正確的把訊息送出去(SendMessage沒有把訊息送出去)
: 上網看其他文章,又把位置改成WM_USER + 100或是其他值
: 也都沒辦法送出訊息,(偏偏只有WM_USER - 31可以@@)
: 請問是我哪邊寫錯了嗎?
: 還是SendMessage函數裡面的參數要修改呢?
自定義message
1. 定義一下這個macro
#define DECLARE_USER_MESSAGE(name) \
static const UINT name = ::RegisterWindowMessage(name##_MSG);
2. DECLARE_USER_MESSAGE(UWM_RESET_VIEW)
這樣就有一個UWM_RESET_VIEW的message了
這麼做的好處是,用#define一個常數的話,如果有import別的 .dll,可能會搶用同一個
message的值。
MFC裡的SendMessage應該是
SendMessage(UWM_RESET_VIEW); 這樣就行了吧
win32應該就是像你寫的一樣了
--
給自己自信 不管面對什麼 總是能勇於創造
給自己謙虛 使自己能不斷的再學習
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.59.242
※ 編輯: aecho 來自: 59.120.59.242 (02/25 16:16)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章