好了,所以這裏的這個功能MFC:ON_COMMAND函數混淆?
. . ON_COMMAND (ID_COLOR_RED, OnColor) ON_COMMAND (ID_COLOR_GREEN, OnColor) ON_COMMAND (ID_COLOR_BLUE, OnColor) . . . void CMainWindow::OnColor() { UINT nID = (UINT) LOWORD (GetCurrentMessage()->wParam); m_nCurrentColor = nID _ ID_COLOR_RED; }
所以,在這裏CurrentMessage的wParam中的LOWORD應該包含消息的ID,那也沒關係,但到底是什麼m_nCurrentColor = _的NID ID_COLOR_RED;手段? m_nCurrentColor對於紅色,綠色或藍色分別可以是0,1或2 ...
因此,首先我們在第一條語句中將消息ID轉換爲UINT,但是我們在第二條語句中如何使用m_nCurrentColor = nID _ ID_COLOR_RED?
任何人都可以請解釋嗎?
除非您自己定義ID而不是依賴資源文件,否則無法保證資源編輯器不會使用這些ID。例如,如果你有ID_COLOR_RED = 10000,ID_COLOR_GREEN = 10001,ID_COLOR_BLUE = 10001,事情會很好;但如果編輯器更改了ONLY ONE的數字符號,並且您的代碼肯定會被破壞。 – sergiol 2015-07-08 17:27:10