c++ - 如何为 ON_COMMAND 处理程序声明 ID?

标签 c++ mfc

我做 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 表示 Declare the word "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 的范围内。

其他有用的问题:因此,当您希望处理命令时,该命令必须由用户给出。在您的情况下应该如何完成?这个命令的用户界面在哪里?检查您是否已有命令 ID 但可能是不同的。

关于c++ - 如何为 ON_COMMAND 处理程序声明 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46601923/

相关文章:

c++ - 参数化 sc_lv 时报告错误(表达式必须具有常量值)

c++ - 进程引用初始化时是否是clang中的错误

c++ - [[deprecated]] 在 Visual Studio 中导致错误而不是警告

c++ - 我需要一个不会弄乱我打开的窗口的消息泵

windows - 最小化/最大化框在 MFC 对话框编辑器中变灰

c++ - Qt:优化绘画事件

c++ - 尝试使用 boost::asio::signal_set 时无法编译

c++ - CScrollView 只滚动大面积的部分区域

c++ - 如何获取嵌入式IE ActiveX控件的版本?

c++ - MFC 应用程序启动后立即崩溃