je souhaite envoyer le contenu de plusieurs dialogbox dans un buffer image.
Les dialogbox ne sont pas affichées à l'écran.
Pour ça, j'ai donc créé un bitmap et un device context (pDC) et je
parcours les dialogbox une à une
//si c'est du texte pas de problème
pDC->DrawText(csTxt,...);
//mais quand c'est une image
if ((dwStyle & SS_BITMAP) == SS_BITMAP)
je n'arrive pas à avoir la main sur l'image.
Si je pouvais récupérer le numéro de la ressource qq part ça m'irait,
mais je sais pas comment récupérer cette valeur, doit bien y avoir une
fonction proche du GetClassName et du GetStyle mais je la trouve pas.
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
Christian ASTOR
Frd a écrit :
je souhaite envoyer le contenu de plusieurs dialogbox dans un buffer image. Les dialogbox ne sont pas affichées à l'écran. Pour ça, j'ai donc créé un bitmap et un device context (pDC) et je parcours les dialogbox une à une char szClass[255]; CWnd* pWnd = pDlg->GetWindow(GW_CHILD); GetClassName(pWnd->m_hWnd,szClass,255); DWORD dwStyle = pWnd->GetStyle(); if( strcmp(szClass,"Static")==0 )
//si c'est du texte pas de problème pDC->DrawText(csTxt,...);
//mais quand c'est une image if ((dwStyle& SS_BITMAP) == SS_BITMAP) je n'arrive pas à avoir la main sur l'image.
WM_PRINTCLIENT
Frd a écrit :
je souhaite envoyer le contenu de plusieurs dialogbox dans un buffer image.
Les dialogbox ne sont pas affichées à l'écran.
Pour ça, j'ai donc créé un bitmap et un device context (pDC) et je
parcours les dialogbox une à une
char szClass[255];
CWnd* pWnd = pDlg->GetWindow(GW_CHILD);
GetClassName(pWnd->m_hWnd,szClass,255);
DWORD dwStyle = pWnd->GetStyle();
if( strcmp(szClass,"Static")==0 )
//si c'est du texte pas de problème
pDC->DrawText(csTxt,...);
//mais quand c'est une image
if ((dwStyle& SS_BITMAP) == SS_BITMAP)
je n'arrive pas à avoir la main sur l'image.
je souhaite envoyer le contenu de plusieurs dialogbox dans un buffer image. Les dialogbox ne sont pas affichées à l'écran. Pour ça, j'ai donc créé un bitmap et un device context (pDC) et je parcours les dialogbox une à une char szClass[255]; CWnd* pWnd = pDlg->GetWindow(GW_CHILD); GetClassName(pWnd->m_hWnd,szClass,255); DWORD dwStyle = pWnd->GetStyle(); if( strcmp(szClass,"Static")==0 )
//si c'est du texte pas de problème pDC->DrawText(csTxt,...);
//mais quand c'est une image if ((dwStyle& SS_BITMAP) == SS_BITMAP) je n'arrive pas à avoir la main sur l'image.
WM_PRINTCLIENT
Frd
Le 15/04/2011 17:19, Christian ASTOR a écrit :
je souhaite envoyer le contenu de plusieurs dialogbox dans un buffer image. Les dialogbox ne sont pas affichées à l'écran. Pour ça, j'ai donc créé un bitmap et un device context (pDC) et je parcours les dialogbox une à une char szClass[255]; CWnd* pWnd = pDlg->GetWindow(GW_CHILD); GetClassName(pWnd->m_hWnd,szClass,255); DWORD dwStyle = pWnd->GetStyle();
WM_PRINTCLIENT
Salut
quand je fais SendMessage(pWnd->m_hWnd, WM_PRINTCLIENT, (WPARAM) pDC->m_hDC, PRF_CLIENT );
ou même
pWnd->PrintClient(pDC, PRF_CLIENT);
le bitmap est bien affiché, mais il apparait en 0,0 du device context. Et un pDC->MoveTo(x, y); n'y change rien...
Merci pour la piste
Le 15/04/2011 17:19, Christian ASTOR a écrit :
je souhaite envoyer le contenu de plusieurs dialogbox dans un buffer image.
Les dialogbox ne sont pas affichées à l'écran.
Pour ça, j'ai donc créé un bitmap et un device context (pDC) et je
parcours les dialogbox une à une
char szClass[255];
CWnd* pWnd = pDlg->GetWindow(GW_CHILD);
GetClassName(pWnd->m_hWnd,szClass,255);
DWORD dwStyle = pWnd->GetStyle();
WM_PRINTCLIENT
Salut
quand je fais
SendMessage(pWnd->m_hWnd, WM_PRINTCLIENT, (WPARAM) pDC->m_hDC,
PRF_CLIENT );
ou même
pWnd->PrintClient(pDC, PRF_CLIENT);
le bitmap est bien affiché, mais il apparait en 0,0 du device context.
Et un
pDC->MoveTo(x, y);
n'y change rien...
je souhaite envoyer le contenu de plusieurs dialogbox dans un buffer image. Les dialogbox ne sont pas affichées à l'écran. Pour ça, j'ai donc créé un bitmap et un device context (pDC) et je parcours les dialogbox une à une char szClass[255]; CWnd* pWnd = pDlg->GetWindow(GW_CHILD); GetClassName(pWnd->m_hWnd,szClass,255); DWORD dwStyle = pWnd->GetStyle();
WM_PRINTCLIENT
Salut
quand je fais SendMessage(pWnd->m_hWnd, WM_PRINTCLIENT, (WPARAM) pDC->m_hDC, PRF_CLIENT );
ou même
pWnd->PrintClient(pDC, PRF_CLIENT);
le bitmap est bien affiché, mais il apparait en 0,0 du device context. Et un pDC->MoveTo(x, y); n'y change rien...
Merci pour la piste
Christian ASTOR
Frd a écrit :
Salut
quand je fais SendMessage(pWnd->m_hWnd, WM_PRINTCLIENT, (WPARAM) pDC->m_hDC, PRF_CLIENT );
ou même
pWnd->PrintClient(pDC, PRF_CLIENT);
le bitmap est bien affiché, mais il apparait en 0,0 du device context. Et un pDC->MoveTo(x, y); n'y change rien...
Oui, normal, MoveTo() n'est pas fait pour ça. On envoie WM_PRINTCLIENT dans un Memory DC, où on le triture comme on veut, et on le blitte au final par BitBlt() par exemple, vers le HDC final.
Frd a écrit :
Salut
quand je fais
SendMessage(pWnd->m_hWnd, WM_PRINTCLIENT, (WPARAM) pDC->m_hDC,
PRF_CLIENT );
ou même
pWnd->PrintClient(pDC, PRF_CLIENT);
le bitmap est bien affiché, mais il apparait en 0,0 du device context.
Et un
pDC->MoveTo(x, y);
n'y change rien...
Oui, normal, MoveTo() n'est pas fait pour ça.
On envoie WM_PRINTCLIENT dans un Memory DC, où on le triture comme on
veut, et on le blitte au final par BitBlt() par exemple, vers le HDC final.
quand je fais SendMessage(pWnd->m_hWnd, WM_PRINTCLIENT, (WPARAM) pDC->m_hDC, PRF_CLIENT );
ou même
pWnd->PrintClient(pDC, PRF_CLIENT);
le bitmap est bien affiché, mais il apparait en 0,0 du device context. Et un pDC->MoveTo(x, y); n'y change rien...
Oui, normal, MoveTo() n'est pas fait pour ça. On envoie WM_PRINTCLIENT dans un Memory DC, où on le triture comme on veut, et on le blitte au final par BitBlt() par exemple, vers le HDC final.
Frd
Le 18/04/2011 16:15, Christian ASTOR a écrit :
Frd a écrit :
Salut
quand je fais SendMessage(pWnd->m_hWnd, WM_PRINTCLIENT, (WPARAM) pDC->m_hDC, PRF_CLIENT );
ou même
pWnd->PrintClient(pDC, PRF_CLIENT);
le bitmap est bien affiché, mais il apparait en 0,0 du device context. Et un pDC->MoveTo(x, y); n'y change rien...
Oui, normal, MoveTo() n'est pas fait pour ça. On envoie WM_PRINTCLIENT dans un Memory DC, où on le triture comme on veut, et on le blitte au final par BitBlt() par exemple, vers le HDC final.
quand je fais
SendMessage(pWnd->m_hWnd, WM_PRINTCLIENT, (WPARAM) pDC->m_hDC,
PRF_CLIENT );
ou même
pWnd->PrintClient(pDC, PRF_CLIENT);
le bitmap est bien affiché, mais il apparait en 0,0 du device context.
Et un
pDC->MoveTo(x, y);
n'y change rien...
Oui, normal, MoveTo() n'est pas fait pour ça.
On envoie WM_PRINTCLIENT dans un Memory DC, où on le triture comme on
veut, et on le blitte au final par BitBlt() par exemple, vers le HDC final.
quand je fais SendMessage(pWnd->m_hWnd, WM_PRINTCLIENT, (WPARAM) pDC->m_hDC, PRF_CLIENT );
ou même
pWnd->PrintClient(pDC, PRF_CLIENT);
le bitmap est bien affiché, mais il apparait en 0,0 du device context. Et un pDC->MoveTo(x, y); n'y change rien...
Oui, normal, MoveTo() n'est pas fait pour ça. On envoie WM_PRINTCLIENT dans un Memory DC, où on le triture comme on veut, et on le blitte au final par BitBlt() par exemple, vers le HDC final.
Oui, normal, MoveTo() n'est pas fait pour ça. On envoie WM_PRINTCLIENT dans un Memory DC, où on le triture comme on veut, et on le blitte au final par BitBlt() par exemple, vers le HDC final.
Bon ben c'est pas encore gagné ! Pour l'export dans une image ça fonctionne, mais pour envoyer vers un PrinterDC j'ai encore un petit problème de positionnement.
Le 18/04/2011 16:24, Frd a écrit :
Oui, normal, MoveTo() n'est pas fait pour ça.
On envoie WM_PRINTCLIENT dans un Memory DC, où on le triture comme on
veut, et on le blitte au final par BitBlt() par exemple, vers le HDC final.
Bon ben c'est pas encore gagné !
Pour l'export dans une image ça fonctionne, mais pour envoyer vers un
PrinterDC j'ai encore un petit problème de positionnement.
Oui, normal, MoveTo() n'est pas fait pour ça. On envoie WM_PRINTCLIENT dans un Memory DC, où on le triture comme on veut, et on le blitte au final par BitBlt() par exemple, vers le HDC final.
Bon ben c'est pas encore gagné ! Pour l'export dans une image ça fonctionne, mais pour envoyer vers un PrinterDC j'ai encore un petit problème de positionnement.