如何声明ON_COMMAND处理程序的 ID

How do I declare an ID for a ON_COMMAND handler?

本文关键字:处理 COMMAND 程序 ID ON 何声明 声明      更新时间:2023-10-16

我做MFC作业。但它会犯错误。

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);
}

此 ID 是简单定义的。通常在名为 resource.h 的文件中定义

此 ID 是在编辑菜单或工具栏等 UI 部分时创建的。工具栏或菜单上的每个命令都有一个单独的 ID。命令的此 ID 通常在>0x8000范围内。

其他有用的问题:因此,当您希望处理命令时,该命令必须由用户提供。在您的情况下应该如何做到这一点?哪里有此命令的 UI?检查您是否已经有命令 ID,但可能是不同的 ID。