2017-10-06 21 views
0

私はMFCの宿題をします。 しかし、エラーが発生します。 2065は、それが言葉 "ID_ARTHMETIC、ID_ARITHMETIC"どのようにしてON_COMMANDハンドラのIDを宣言しますか?

私はMFC ON_COMMANDについての多くのサイトを見つけましたが、それは例を宣言しないと宣言言う

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

エラー)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というファイルに定義されています

このIDは、メニューやツールバーなどのUI部品を編集するときに作成されます。ツールバーまたはメニューの各コマンドには、別々のIDがあります。コマンドのこのIDは通常0x8000を超えます。

その他の有用な質問:コマンドを処理するには、そのコマンドをユーザーが指定する必要があります。あなたのケースでこれをどのようにしなければならないのでしょうか?このコマンドのUIはどこにありますか?既にコマンドIDを持っているが、別のコマンドIDを持っているかどうか調べてください。

関連する問題