begin process at 2012 05 29 19:55:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

Obtention du DeviceContext d'un pictureBox(MFC)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Obtention du DeviceContext d'un pictureBox(MFC)

mercredi 30 juillet 2003 à 12:33:13 | Obtention du DeviceContext d'un pictureBox(MFC)

Trollien

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.
mercredi 30 juillet 2003 à 13:41:35 | Re : Obtention du DeviceContext d'un pictureBox(MFC)

JCDjcd

hdc = GetDC(hwnd);








-------------------------------
Réponse au message :
-------------------------------

> 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.
mercredi 30 juillet 2003 à 19:12:58 | Re : Obtention du DeviceContext d'un pictureBox(MFC)

Trollien

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.





-------------------------------
Réponse au message :
-------------------------------

> hdc = GetDC(hwnd);
>
>
>
>
>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > 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.
>
mercredi 30 juillet 2003 à 19:25:05 | Re : Obtention du DeviceContext d'un pictureBox(MFC)

Trollien

Ah je crois que c bon.
j'utilise cette syntaxe là hdc = ::GetDC(HWND); et là pas d'erreur de compilation.
Merci.


-------------------------------
Réponse au message :
-------------------------------

> 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.
>
>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > hdc = GetDC(hwnd);
> >
> >
> >
> >
> >
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > 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.
> >
>


Cette discussion est classée dans : hdlg, dc, dcc, himg, cfw


Répondre à ce message

Sujets en rapport avec ce message

Problème de rafraichissement (?) [ par Slaayer ] G programmé une application Win32 en C, sous visual C++, permettant de chatter en se connectant à un serveur.Le client intercepte bien les msg envoyé faire progresser....une progress bar !! [ par Xs ] c tout bete, mais je sais pas comment faire. ou plutot lui dire a quoi comparer sa progression par rapport au chargement de quelque chose.mon code : # objet non initialisé (API Win32) [ par Xs ] salut !voici mon code, d'abord :#include #include #include "resource.h"LRESULT CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam){cha positions [ par Xs ] salut ! je cherche et je trouve pas, ou alors je sais pas m'en servir, comment on recupere la position actuelle du fenetre(dialogbox).j'ai essayé des touches [ par Xs ] voila, j'ai essayé de tester des touches afin que, par exemple, lorsque l'on appuie sur Y, une message box apparaisse.j'ai recupérer ce code venat de erreur memoire [ par Xs ] alors voila, j'ai jamais vu ca.je lance mon programme. normal. puis je clique sur le bouton generer et là, pouf !un message d'erreur. alors, celui la, d'une procedure a une autre !! [ par Xs ] salut !!quel grand pas a faire !eh oui, tout marche tres bien dans mon prog : j'ai fait Mon message, je sais l'activer....on part du principe qu'il y Device context et StretchBlt ? [ par tavernier ] Bonjour, je suis en train de faire un générateur de fractale et j'ai besoin de mettre la fractale de coté pour ne pas avoir à tout recalculer pour la [URGENT - AIDE SVP] Access Violation Bizarre... [ par DivXPVobD ] Bonjour,Voici un bout de mon code :Effect=1;SetDlgItemText(hDlg, IDC_EFFET, "E\0");SendDlgItemMessage(hDlg, IDC_TYPE, CB_RESETCONTENT, NULL, NULL);Sen Récupérer le message CB_SETCURSEL [ par vow ] Bonjour, je travaille tjs sur Visual C++ 6 en langage C J'ai une fenêtre avec 2 combo-box et une case à cocher.Le premier peut changer ou pas le secon


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales