2017-10-06 48 views
0

我讓MFC做作業。 但它會產生錯誤。如何爲ON_COMMAND處理程序聲明一個ID?

BEGIN_MESSAGE_MAP(CMFC_Exp01Doc, CDocument) 
ON_COMMAND(ID_ARTHMETIC, &CMFC_Exp01Doc::OnArthmetic) 
ON_COMMAND(ID_ARITHMETIC, &CMFC_Exp01Doc::OnArithmetic) 
END_MESSAGE_MAP() 

錯誤2065說,聲明詞 「ID_ARTHMETIC,ID_ARITHMETIC」

我發現了大約MFC ON_COMMAND很多網站,但它並沒有聲明的例子)ID_0000

如何,我宣佈這個詞?

void CMFC_Exp01Doc::OnArthmetic() 
{ 
    int i, j; 
    int temp; 
    for (i = 0; i<256; i++) { 
     for (j = 0; j<256; j++) { 
      temp = m_InImage[i][j] + 40; 
      if (temp>255) 
       m_OutImage[i][j] = 255; 
      else if (temp < 0) 
       m_OutImage[i][j] = 0; 
      else 
       m_OutImage[i][j] = (unsigned char)temp; 
     } 
    } 

    UpdateAllViews(NULL); 
} 

void CMFC_Exp01Doc::OnArithmetic() 
{ 
    int i, j; 
    int temp; 
    for (i = 0; i<256; i++) { 
     for (j = 0; j<256; j++) { 
      temp = m_InImage[i][j] + 40; 
      if (temp>255) 
       m_OutImage[i][j] = 255; 
      else if (temp < 0) 
       m_OutImage[i][j] = 0; 
      else 
       m_OutImage[i][j] = (unsigned char)temp; 
     } 
    } 

    UpdateAllViews(NULL); 
} 
+1

似乎你是從另一個項目複製粘貼代碼,看看你的.rc文件,並找出什麼ID_0000然後你聲明到資源文件。 –

+0

您可能缺乏有關MFC的基本知識。通過複製粘貼代碼,你不會走得太遠。那裏有大量的MFC教程。 –

回答

2

這個ID是簡單的定義。通常在名爲resource.h的文件中定義。

當您編輯UI部件(如菜單或工具欄)時,會創建此ID。工具欄或菜單上的每個命令都有一個單獨的ID。這些命令的ID通常在> 0x8000的範圍內。

其他有用的問題:所以當你想要處理命令時,該命令必須由用戶給出。你的情況應該如何處理?你在哪裏有這個命令的用戶界面?看看你是否已經有一個命令ID,但可能是一個不同的。