MFC: _AFXWIN_INLINE dame "ninguna función sobrecargada toma 6 argumentos"

Nov 26 2020

En una aplicación MFC, estoy intentando mover una ventana de consola que he agregado con fines de depuración.

    /*  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 );

Me sale este error:

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

Lo extraño es que si coloco el puntero del mouse en "MoveWindow" "obtengo el prototipo esperado. Pero si uso" goto definition "obtengo la definición que ves en las primeras líneas (atenuada).

He intentado "#undef _AFXWIN_INLINE"

Respuestas

2 IInspectable Nov 26 2020 at 09:44

CWnd :: MoveWindow tiene dos sobrecargas, una con 5 argumentos y la otra con 2 argumentos. Como indica el error, no hay sobrecarga que tome 6 argumentos.

Parece que en su lugar está intentando llamar a la función MoveWindow de la API de Windows . Esta es una función gratuita, por lo que debe eliminar la CWnd::resolución del osciloscopio. El uso de un prefijo global resolución espacio de nombres es siempre seguro, por ejemplo: ::MoveWindow(...);.