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...)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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+
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" <neo7447@aol.com> a écrit dans le message de
news:20031209011044.22983.00000351@mb-m27.aol.com...
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...)
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...)