2017-10-06 3 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 파일에 정의되어 있습니다.

이 ID는 메뉴 또는 도구 모음과 같은 UI 부분을 편집 할 때 만들어집니다. 도구 모음이나 메뉴의 각 명령에는 별도의 ID가 있습니다. 명령 ID는 일반적으로 0x8000을 초과하지 않습니다.

추가 유용한 질문 : 명령을 처리하려면 명령을 사용자가 제공해야합니다. 당신의 경우 어떻게해야합니까? 이 명령에 대한 UI는 어디에 있습니까? 이미 명령 ID가 있지만 다른 명령 ID가 있는지 확인하십시오.