MFC:_AFXWIN_INLINE给我"no overloaded function takes 6 arguments"

MFC: _AFXWIN_INLINE give me "no overloaded function takes 6 arguments"

在 MFC 应用程序中,我正在尝试移动控制台 window 我已添加用于调试目的。

    /*  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”

CWnd::MoveWindow 有两个重载,一个有 5 个参数,另一个有 2 个参数。如错误所示,没有采用 6 个参数的重载。

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