gpt4 book ai didi

c++ - 无法链接 BEGIN_MESSAGE_MAP 中的 afx_msg

转载 作者:行者123 更新时间:2023-11-30 04:37:36 25 4
gpt4 key购买 nike

我正在尝试连接到 OnSysCommand 函数,但出现了一个令人困惑的错误。

在标题中,我声明函数如下:

afx_msg void OnSysCommand(UINT nID, LPARAM lParam );

在 cpp 中的代码是:

BEGIN_MESSAGE_MAP(CMFCTest1App, CWinAppEx)
ON_COMMAND(ID_APP_ABOUT, &CMFCTest1App::OnAppAbout)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinAppEx::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinAppEx::OnFileOpen)
ON_WM_SYSCOMMAND()
END_MESSAGE_MAP()

void CMFCTest1App::OnSysCommand(UINT nID, LPARAM lParam )
{
AfxMessageBox(L"System command recieved");
}

编译时出现以下错误信息:

1>  MFCTest1.cpp
1>c:\users\dell3\documents\visual studio 2010\projects\mfctest1\mfctest1\mfctest1.cpp(43): error C2440: 'static_cast' : cannot convert from 'void (__thiscall CMFCTest1App::* )(UINT,LPARAM)' to 'void (__thiscall CWnd::* )(UINT,LPARAM)'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>
1>Build FAILED.

当我尝试连接到 OnClose 函数时,同样的事情发生了。任何建议将不胜感激。谢谢。

最佳答案

将处理程序移出您的应用类并移至您的窗口或框架类中。

这些消息应该在窗口类(派生自 CWnd)中处理,而不是在您的应用类(派生自 CWinApp)中处理。

关于c++ - 无法链接 BEGIN_MESSAGE_MAP 中的 afx_msg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3749390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com