Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[débutant visual c++ 6] refus d'appel d'API

1 réponse
Avatar
neo7447
Salut à tous,

Je suis débutant en Visual C++ 6.
Je souhaiterais faire une capture du bureau Windows, et la copiée dans une
application SDI basé sur une classe CView (et rien d'autre, merci ;o)

Voila le code :

void CCaptureView::OnDraw(CDC* pDC)
{
CCaptureDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
//var
HWND hDesk;
HDC dc;
RECT rScreen;
//ini
hDesk = GetDesktopWindow();
dc = GetDC(hDesk);
GetClientRect(hDesk, &rScreen);
//soft
pDC->BitBlt(0, 0, rScreen.right, rScreen.bottom, (CDC*)dc, 0, 0, SRCCOPY);
}

Le problème étant que le compilateur ne veux pas de mon code :

error C2440: '=' : cannot convert from 'class CWnd *' to 'struct HWND__ *'
Types pointed to are unrelated; conversion requires reinterpret_cast,
C-style cast or function-style cast
error C2660: 'GetDC' : function does not take 1 parameters
error C2660: 'GetClientRect' : function does not take 2 parameters

Il refuse de compiler avec les API.
Par contre il veux bien des fonctions de la classe CWnd... mais je pense pas
pouvoir les utilisés ici.

Quelqu'un peux m'expliquer comment utilisé les API en direct ?
Si c'est une bonne méthode ?
Il y a des bugs ? (oui je sais, il y a 3 erreurs...)

Grand merci ce qui pourrons m'aider.

A+

1 réponse

Avatar
Jean-Yves
Bonjour,

Essaie de mettre "::" devant les fonctions de l'API pour le forcer à les
utiliser plutôt que les fonctions de CWnd.

hDesk = ::GetDesktopWindow();
dc = ::GetDC(hDesk);
::GetClientRect(hDesk, &rScreen);


Jean-Yves

"Neo7447" a écrit dans le message de
news:
Salut à tous,

Je suis débutant en Visual C++ 6.
Je souhaiterais faire une capture du bureau Windows, et la copiée dans une
application SDI basé sur une classe CView (et rien d'autre, merci ;o)

Voila le code :

void CCaptureView::OnDraw(CDC* pDC)
{
CCaptureDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
//var
HWND hDesk;
HDC dc;
RECT rScreen;
//ini
hDesk = GetDesktopWindow();
dc = GetDC(hDesk);
GetClientRect(hDesk, &rScreen);
//soft
pDC->BitBlt(0, 0, rScreen.right, rScreen.bottom, (CDC*)dc, 0, 0, SRCCOPY);
}

Le problème étant que le compilateur ne veux pas de mon code :

error C2440: '=' : cannot convert from 'class CWnd *' to 'struct HWND__ *'
Types pointed to are unrelated; conversion requires


reinterpret_cast,
C-style cast or function-style cast
error C2660: 'GetDC' : function does not take 1 parameters
error C2660: 'GetClientRect' : function does not take 2 parameters

Il refuse de compiler avec les API.
Par contre il veux bien des fonctions de la classe CWnd... mais je pense


pas
pouvoir les utilisés ici.

Quelqu'un peux m'expliquer comment utilisé les API en direct ?
Si c'est une bonne méthode ?
Il y a des bugs ? (oui je sais, il y a 3 erreurs...)

Grand merci ce qui pourrons m'aider.

A+