MFC: _AFXWIN_INLINE me donne "aucune fonction surchargée ne prend 6 arguments"
Dans une application MFC, j'essaie de déplacer une fenêtre de console que j'ai ajoutée à des fins de débogage.
/* 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 );
J'obtiens cette erreur:
Error C2661 'CWnd::MoveWindow': no overloaded function takes 6 arguments
G:\proj\repos\EnterDG\EnterDGDlg.cpp 201
La chose étrange est que si je place le pointeur de la souris sur "MoveWindow" "J'obtiens le prototype attendu. Mais si j'utilise" goto definition "j'obtiens la définition que vous voyez dans les premières lignes (grisées).
J'ai essayé de "#undef _AFXWIN_INLINE"
Réponses
CWnd :: MoveWindow a deux surcharges, l'une prenant 5 arguments, l'autre prenant 2 arguments. Comme l'indique l'erreur, il n'y a pas de surcharge qui prend 6 arguments.
Il semble que vous essayez d'appeler la fonction API Windows MoveWindow à la place. Il s'agit d'une fonction gratuite, vous devez donc supprimer la CWnd::
résolution de l' oscilloscope. L' utilisation d' un préfixe global de résolution d'espace de noms est toujours en sécurité, par exemple: ::MoveWindow(...);
.