Obtention du DeviceContext d'un pictureBox(MFC)

Trollien Messages postés 39 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 31 janvier 2006 - 30 juil. 2003 à 12:33
Trollien Messages postés 39 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 31 janvier 2006 - 30 juil. 2003 à 19:25
Bonjour,
je cherche à obtenir le DC d'un Control Picture afin de capturer l'ecran ou même juste une region, mais la fonction CWnd::GetDC() ne semble pas vouloir.
Voici mon code :

void CTestAPIDlg::OnBnClickedOk()
{
HWND hImg,hDlg;
CFrameWnd* cfw;
HDC dc,dcc,hImgDC;
CDC *hImgCDC;
int DCW=0,DCH=0,wx=0,wy=0;
int r=0;

hDlg = this->m_hWnd;

dc = CreateDC("DISPLAY",NULL,NULL,NULL);
dcc = CreateCompatibleDC(dc);

hImg = ::GetDlgItem(hDlg,IDC_MYPB);

DCW = GetDeviceCaps(dcc,4);
DCH = GetDeviceCaps(dcc,6);

cfw = ((CFrameWnd*)hImg);
hImgCDC = cfw->GetDC(); //Erreur :
hImgDC = hImgCDC->m_hDC;

StretchBlt(hImgDC,0,0,wx,wy,dcc,0,0,DCW,DCH,SRCCOPY);

r = DeleteDC(dc);
r = DeleteDC(dcc);

OnOK();
}

L'erreur viendrait elle d'une histoire de pointeur ou tt simplement que l'impossibilité de récupérer le DC de cette façon? Merci d'avance.

3 réponses

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
30 juil. 2003 à 13:41
hdc = GetDC(hwnd);

:-p :-p :-p :shy) :-p :-p :-p :shy) :-p :-p :shy)
:shy) :-p :shy) :shy) :-p :shy) :shy) :shy) :-p :shy) :-p
:shy) :-p :shy) :shy) :-p :shy) :shy) :shy) :-p :shy) :-p
:-p :-p :shy) :shy) :-p :-p :-p :shy) :-p :-p :shy)
0
Trollien Messages postés 39 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 31 janvier 2006
30 juil. 2003 à 19:12
Je n'ai pas accès à cette fonction dans mfc même en incluant le fichier windows.h, le compilateur me dit qu'il n'existe pas de méthode surchargée GetDC(HWND).
C'est pourquoi je passe par le (CFrameWnd*)hImg->GetDC(void). Mais le prob c que la il me sort une erreur genre lecture impossible à l'addresse gnia gnia gnia.
0
Trollien Messages postés 39 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 31 janvier 2006
30 juil. 2003 à 19:25
Ah je crois que c bon.
j'utilise cette syntaxe là hdc = ::GetDC(HWND); et là pas d'erreur de compilation.
Merci.
0
Rejoignez-nous