MFC:_AFXWIN_INLINE 给我“没有重载函数需要 6 个参数”

Posted

技术标签:

【中文标题】MFC:_AFXWIN_INLINE 给我“没有重载函数需要 6 个参数”【英文标题】:MFC: _AFXWIN_INLINE give me "no overloaded function takes 6 arguments" 【发布时间】:2020-11-26 09:37:15 【问题描述】:

在 MFC 应用程序中,我试图移动我为调试目的添加的控制台窗口。

    /*  Put here just for reference
        _AFXWIN_INLINE void CWnd::MoveWindow(LPCRECT lpRect, BOOL bRepaint)
         MoveWindow(lpRect->left, lpRect->top, lpRect->right - lpRect->left,
        lpRect->bottom - lpRect->top, bRepaint); 
    */
        HANDLE hh;
        bool oo = CWnd::MoveWindow( hh, 100, 0, 300, 300, true );

我收到此错误:

Error   C2661   'CWnd::MoveWindow': no overloaded function takes 6 arguments    
G:\proj\repos\EnterDG\EnterDGDlg.cpp    201

奇怪的是,如果我将鼠标指针放在“MoveWindow”上,我会得到预期的原型。但如果我使用“goto definition”,我会得到你在第一行看到的定义(灰色)。

我已尝试“#undef _AFXWIN_INLINE”

【问题讨论】:

【参考方案1】:

CWnd::MoveWindow 有两个重载,一个带 5 个参数,另一个带 2 个参数。如错误所示,不存在需要 6 个参数的重载。

您似乎正在尝试调用 Windows API 函数 MoveWindow。这是一个免费功能,因此您需要删除CWnd:: 范围分辨率。使用全局命名空间解析前缀始终是安全的,例如:::MoveWindow(...);

【讨论】:

以上是关于MFC:_AFXWIN_INLINE 给我“没有重载函数需要 6 个参数”的主要内容,如果未能解决你的问题,请参考以下文章

将 Mat 中的 RGB 图像转换为 MFC 中的 BYTE *

静态或动态链接 CRT、MFC、ATL 等

MFC 怎样在主窗口任意位置使用控件

MFC 一个对话框类调用另一个类的成员变量

请在 MFC 中发布任何线程示例?

MFC - 打印 rtf 文档