|
這兩個Param有什么區(qū)別?它們都各自收到什么樣的消息??? 具體要看所發(fā)送的消息,一些消息中這兩個都是沒有意義的阿 具體的可看MSDN。 不是收消息,是發(fā)消息時候帶的額外信息,不同的消息有著不同的含義 兩個消息的傳遞參數(shù)唄 我照著例子寫的一點程序 .... ON_MESSAGE(WM_TASKBARMINI, OnTaskBarMini) .... LRESULT CMiniBarDlg::OnTaskBarMini(WPARAM wParam, LPARAM lParam ) { UINTuMouseMsg = (UINT) lParam; switch (uMouseMsg) { case WM_LBUTTONDOWN: AfxMessageBox("TrayIcon"); break; case WM_RBUTTONDOWN: AfxMessageBox("TrayIcon R"); break; default: ; } } 這是一個響應(yīng)系統(tǒng)托盤的鼠標(biāo)事件的小程序。 為什么 uMouseMsg 賦值為wParam就不行了?????? 為什么一定要使用lParam???? 這兩個參數(shù)是從哪里傳過來的???? 就這些東西我實在搞不清~~~ 系統(tǒng)消息中wParam,lParam 含義都是固定的 好像一般wParam傳個值 lParam 傳個指針 就是發(fā)送側(cè)需要同時帶給消息接受側(cè)的額外的數(shù)據(jù) 針對不同的消息,有一些自己的含義 有沒有搞的很清楚的朋友??講講~~~please 2個參數(shù)好辦事嘛 根據(jù)消息的不同提供不同的值 我舉個例子吧,也不知確切不確切,大家多包涵阿 首先要說windows是消息驅(qū)動的系統(tǒng),系統(tǒng)為每一個程序(應(yīng)該說進程)建立一個消息隊列。 舉我們選擇菜單的例子,當(dāng)選擇了一個菜單項的時候,Windows向菜單所屬的窗口發(fā)送WM_COMMAND消息;而用戶按下了一個加速鍵的時候,windows向TranslateAccelerate函數(shù)指定的目標(biāo)窗口發(fā)送WM_COMMAND消息。一般這兩者對應(yīng)的窗口都是主窗口,所以在主窗口中的窗口過程中集中處理WM_COMMAND消息,而不必考慮它究竟是菜單引發(fā)的還是加速鍵引發(fā)的。 WM_COMMAND消息的兩個參數(shù)是這樣定義的: wParam的高位 =wNotifyCode ;通知碼 wParam的低位 =wID ;命令I(lǐng)D lParam = hwdCtl ;發(fā)送WM_COMMAND 消息的子窗口句柄,即誰發(fā)的該消息 除了菜單和加速鍵,WM_COMMAND 消息也可以由其他子窗口引發(fā),如主窗口中的按鈕或工具欄,還有你提到的系統(tǒng)托盤的鼠標(biāo)事件等等,lParam參數(shù)指定了引發(fā)消息的子窗口句柄,對于菜單和加速鍵引發(fā)的WM_COMMAND消息,lParam的值為0。wParam參數(shù)的低16位是命令I(lǐng)D,也就是資源腳本文件中菜單項的命令I(lǐng)D或加速鍵的命令I(lǐng)D,高16位是通知碼,菜單消息的通知碼是0,加速鍵消息的通知碼為1。 這只是菜單和加速鍵的定義。其他的消息可能與此不同,具體查資料吧。 |
|
|