Je ne suis pas un expert dans la prog windows donc j'ai recupéré un bout de
code qui permet de faire une capture d'ecran et qui marche. Seulement voila,
j'aimerais ne copier qu'une seule fenetre, que celle-ci soit visible à
l'ecran ou pas (meme si elle est reduite).
J'utilise donc :
int TakeShot(HWND hWndWindow, HDC *phDcBitmap, HBITMAP *phBitmap)
{
RECT rect;
HDC hDcWindow = GetWindowDC(hWndWindow);
int ScreenX = GetDeviceCaps(hDcWindow, HORZRES);
int ScreenY = GetDeviceCaps(hDcWindow, VERTRES);
GetWindowRect(hWndWindow, &rect);
Ma question est :
L'image que je recupere est une capture de l'ecran complet et pas seulement
de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais
recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de
l'ecran ou visible. Est ce que c'est possible ?
Ma question est : L'image que je recupere est une capture de l'ecran complet et pas seulement de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de l'ecran ou visible. Est ce que c'est possible ?
Merci
Tu peux utiliser WM_PRINT ou WM_PRINTWINDOW si c'est géré par la fenetre
Hwoarang wrote:
Bonjour,
Ma question est :
L'image que je recupere est une capture de l'ecran complet et pas
seulement de la fenetre que je voulais (mais de la bonne taille). Moi,
j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite,
en dehors de l'ecran ou visible. Est ce que c'est possible ?
Merci
Tu peux utiliser WM_PRINT ou WM_PRINTWINDOW si c'est géré par la fenetre
Ma question est : L'image que je recupere est une capture de l'ecran complet et pas seulement de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de l'ecran ou visible. Est ce que c'est possible ?
Merci
Tu peux utiliser WM_PRINT ou WM_PRINTWINDOW si c'est géré par la fenetre
Vincent Burel
"Hwoarang" wrote in message news:fsbik1$asg$
Bonjour,
Je ne suis pas un expert dans la prog windows donc j'ai recupéré un bout
de
code qui permet de faire une capture d'ecran et qui marche. Seulement
voila,
j'aimerais ne copier qu'une seule fenetre, que celle-ci soit visible à l'ecran ou pas (meme si elle est reduite).
il faut qu'elle soit un peu visible quand même, sinon y'aura pas de pixel à copier.
J'utilise donc : int TakeShot(HWND hWndWindow, HDC *phDcBitmap, HBITMAP *phBitmap) { RECT rect; HDC hDcWindow = GetWindowDC(hWndWindow); int ScreenX = GetDeviceCaps(hDcWindow, HORZRES); int ScreenY = GetDeviceCaps(hDcWindow, VERTRES); GetWindowRect(hWndWindow, &rect);
Ma question est : L'image que je recupere est une capture de l'ecran complet et pas
seulement
de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de l'ecran ou visible. Est ce que c'est possible ?
Si ca marche pas, je tenterai un hDcWindow = GetDC(NULL); pour obtenir une DC sur le bureau et le bitblt devra tenir compte des coordonnées. BitBlt(*phDcBitmap, 0, 0, bmpdx, bmpdy,hDcWindow, rect.left,rect.top, SRCCOPY);
VB
"Hwoarang" <hwoarangmy@hotmail.com> wrote in message
news:fsbik1$asg$1@aioe.org...
Bonjour,
Je ne suis pas un expert dans la prog windows donc j'ai recupéré un bout
de
code qui permet de faire une capture d'ecran et qui marche. Seulement
voila,
j'aimerais ne copier qu'une seule fenetre, que celle-ci soit visible à
l'ecran ou pas (meme si elle est reduite).
il faut qu'elle soit un peu visible quand même, sinon y'aura pas de pixel à
copier.
J'utilise donc :
int TakeShot(HWND hWndWindow, HDC *phDcBitmap, HBITMAP *phBitmap)
{
RECT rect;
HDC hDcWindow = GetWindowDC(hWndWindow);
int ScreenX = GetDeviceCaps(hDcWindow, HORZRES);
int ScreenY = GetDeviceCaps(hDcWindow, VERTRES);
GetWindowRect(hWndWindow, &rect);
Ma question est :
L'image que je recupere est une capture de l'ecran complet et pas
seulement
de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais
recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de
l'ecran ou visible. Est ce que c'est possible ?
Si ca marche pas, je tenterai un
hDcWindow = GetDC(NULL);
pour obtenir une DC sur le bureau et le bitblt devra tenir compte des
coordonnées.
BitBlt(*phDcBitmap, 0, 0, bmpdx, bmpdy,hDcWindow, rect.left,rect.top,
SRCCOPY);
Ma question est : L'image que je recupere est une capture de l'ecran complet et pas
seulement
de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de l'ecran ou visible. Est ce que c'est possible ?
Si ca marche pas, je tenterai un hDcWindow = GetDC(NULL); pour obtenir une DC sur le bureau et le bitblt devra tenir compte des coordonnées. BitBlt(*phDcBitmap, 0, 0, bmpdx, bmpdy,hDcWindow, rect.left,rect.top, SRCCOPY);
VB
Christian ASTOR
bilal wrote:
Hwoarang wrote:
L'image que je recupere est une capture de l'ecran complet et pas seulement de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de l'ecran ou visible. Est ce que c'est possible ?
Tu peux utiliser WM_PRINT ou WM_PRINTWINDOW si c'est géré par la fenetre
+ vieil article : http://www.fengyuan.com/article/wmprint.html (pas retesté sous >=XP)
bilal wrote:
Hwoarang wrote:
L'image que je recupere est une capture de l'ecran complet et pas
seulement de la fenetre que je voulais (mais de la bonne taille). Moi,
j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit
reduite, en dehors de l'ecran ou visible. Est ce que c'est possible ?
Tu peux utiliser WM_PRINT ou WM_PRINTWINDOW si c'est géré par la fenetre
+ vieil article : http://www.fengyuan.com/article/wmprint.html
(pas retesté sous >=XP)
L'image que je recupere est une capture de l'ecran complet et pas seulement de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de l'ecran ou visible. Est ce que c'est possible ?
Tu peux utiliser WM_PRINT ou WM_PRINTWINDOW si c'est géré par la fenetre
+ vieil article : http://www.fengyuan.com/article/wmprint.html (pas retesté sous >=XP)
Christian ASTOR
Hwoarang wrote:
L'image que je recupere est une capture de l'ecran complet et pas seulement de la fenetre que je voulais (mais de la bonne taille).
Et le code n'est pas correct : il manque les Release()
"Christian ASTOR" a écrit dans le message de news:47e9f866$0$21145$
bilal wrote:
Hwoarang wrote:
L'image que je recupere est une capture de l'ecran complet et pas seulement de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de l'ecran ou visible. Est ce que c'est possible ?
Tu peux utiliser WM_PRINT ou WM_PRINTWINDOW si c'est géré par la fenetre
+ vieil article : http://www.fengyuan.com/article/wmprint.html (pas retesté sous >=XP)
Merci pour vos reponses, je vais essayer ca
"Christian ASTOR" <castorix@club-internet.fr> a écrit dans le message de
news:47e9f866$0$21145$7a628cd7@news.club-internet.fr...
bilal wrote:
Hwoarang wrote:
L'image que je recupere est une capture de l'ecran complet et pas
seulement de la fenetre que je voulais (mais de la bonne taille). Moi,
j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite,
en dehors de l'ecran ou visible. Est ce que c'est possible ?
Tu peux utiliser WM_PRINT ou WM_PRINTWINDOW si c'est géré par la fenetre
+ vieil article : http://www.fengyuan.com/article/wmprint.html
(pas retesté sous >=XP)
"Christian ASTOR" a écrit dans le message de news:47e9f866$0$21145$
bilal wrote:
Hwoarang wrote:
L'image que je recupere est une capture de l'ecran complet et pas seulement de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de l'ecran ou visible. Est ce que c'est possible ?
Tu peux utiliser WM_PRINT ou WM_PRINTWINDOW si c'est géré par la fenetre
+ vieil article : http://www.fengyuan.com/article/wmprint.html (pas retesté sous >=XP)
Hwoarang
J'ai essayé WM_PRINT et WM_PRINTWINDOW et ca ne marche pas :-(
En fait, l'application que je voudrais faire est une fenetre qui permettrait de recuperer le hwnd de firefox, et de faire une copie de l'ecran dans un bmp, que firefox soit visible ou pas. Le bmp obtenu est une fenetre noir de la taille de ma fenetre d'origine.
Est ce que c'est normal que WM_PRINT et WM_PRINTWINDOW n'aient pas marché dans mon cas ou est ce que c'est normal ? Si c'est normal, est ce qu'il y a un autre moyen de faire ca ?
Sachant que j'utilise Windows Vista Professionnel.
Merci
"Christian ASTOR" a écrit dans le message de news:47e9f866$0$21145$
bilal wrote:
Hwoarang wrote:
L'image que je recupere est une capture de l'ecran complet et pas seulement de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de l'ecran ou visible. Est ce que c'est possible ?
Tu peux utiliser WM_PRINT ou WM_PRINTWINDOW si c'est géré par la fenetre
+ vieil article : http://www.fengyuan.com/article/wmprint.html (pas retesté sous >=XP)
J'ai essayé WM_PRINT et WM_PRINTWINDOW et ca ne marche pas :-(
En fait, l'application que je voudrais faire est une fenetre qui permettrait
de recuperer le hwnd de firefox, et de faire une copie de l'ecran dans un
bmp, que firefox soit visible ou pas. Le bmp obtenu est une fenetre noir de
la taille de ma fenetre d'origine.
Est ce que c'est normal que WM_PRINT et WM_PRINTWINDOW n'aient pas marché
dans mon cas ou est ce que c'est normal ? Si c'est normal, est ce qu'il y a
un autre moyen de faire ca ?
Sachant que j'utilise Windows Vista Professionnel.
Merci
"Christian ASTOR" <castorix@club-internet.fr> a écrit dans le message de
news:47e9f866$0$21145$7a628cd7@news.club-internet.fr...
bilal wrote:
Hwoarang wrote:
L'image que je recupere est une capture de l'ecran complet et pas
seulement de la fenetre que je voulais (mais de la bonne taille). Moi,
j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite,
en dehors de l'ecran ou visible. Est ce que c'est possible ?
Tu peux utiliser WM_PRINT ou WM_PRINTWINDOW si c'est géré par la fenetre
+ vieil article : http://www.fengyuan.com/article/wmprint.html
(pas retesté sous >=XP)
J'ai essayé WM_PRINT et WM_PRINTWINDOW et ca ne marche pas :-(
En fait, l'application que je voudrais faire est une fenetre qui permettrait de recuperer le hwnd de firefox, et de faire une copie de l'ecran dans un bmp, que firefox soit visible ou pas. Le bmp obtenu est une fenetre noir de la taille de ma fenetre d'origine.
Est ce que c'est normal que WM_PRINT et WM_PRINTWINDOW n'aient pas marché dans mon cas ou est ce que c'est normal ? Si c'est normal, est ce qu'il y a un autre moyen de faire ca ?
Sachant que j'utilise Windows Vista Professionnel.
Merci
"Christian ASTOR" a écrit dans le message de news:47e9f866$0$21145$
bilal wrote:
Hwoarang wrote:
L'image que je recupere est une capture de l'ecran complet et pas seulement de la fenetre que je voulais (mais de la bonne taille). Moi, j'aimerais recuperer un bmp avec la fenetre, que celle-ci soit reduite, en dehors de l'ecran ou visible. Est ce que c'est possible ?
Tu peux utiliser WM_PRINT ou WM_PRINTWINDOW si c'est géré par la fenetre
+ vieil article : http://www.fengyuan.com/article/wmprint.html (pas retesté sous >=XP)
Christian ASTOR
On 28 mar, 00:36, "Hwoarang" wrote:
J'ai essayé WM_PRINT et WM_PRINTWINDOW et ca ne marche pas :-(
En fait, l'application que je voudrais faire est une fenetre qui permettra it de recuperer le hwnd de firefox, et de faire une copie de l'ecran dans un bmp, que firefox soit visible ou pas. Le bmp obtenu est une fenetre noir d e la taille de ma fenetre d'origine.
Est ce que c'est normal que WM_PRINT et WM_PRINTWINDOW n'aient pas march é dans mon cas ou est ce que c'est normal ? Si c'est normal, est ce qu'il y a un autre moyen de faire ca ?
Je viens de faire un test sur XP SP2 : ça marche chez moi en récupérant la 2ème fenêtre "MozillaWindowCla ss" et en la mettant par ex dans un Static (SetParent()) puis PrintWindow() sur la fenêtre parente du Static
On 28 mar, 00:36, "Hwoarang" <hwoaran...@hotmail.com> wrote:
J'ai essayé WM_PRINT et WM_PRINTWINDOW et ca ne marche pas :-(
En fait, l'application que je voudrais faire est une fenetre qui permettra it
de recuperer le hwnd de firefox, et de faire une copie de l'ecran dans un
bmp, que firefox soit visible ou pas. Le bmp obtenu est une fenetre noir d e
la taille de ma fenetre d'origine.
Est ce que c'est normal que WM_PRINT et WM_PRINTWINDOW n'aient pas march é
dans mon cas ou est ce que c'est normal ? Si c'est normal, est ce qu'il y a
un autre moyen de faire ca ?
Je viens de faire un test sur XP SP2 :
ça marche chez moi en récupérant la 2ème fenêtre "MozillaWindowCla ss"
et en la mettant par ex dans un Static (SetParent()) puis
PrintWindow() sur la fenêtre parente du Static
J'ai essayé WM_PRINT et WM_PRINTWINDOW et ca ne marche pas :-(
En fait, l'application que je voudrais faire est une fenetre qui permettra it de recuperer le hwnd de firefox, et de faire une copie de l'ecran dans un bmp, que firefox soit visible ou pas. Le bmp obtenu est une fenetre noir d e la taille de ma fenetre d'origine.
Est ce que c'est normal que WM_PRINT et WM_PRINTWINDOW n'aient pas march é dans mon cas ou est ce que c'est normal ? Si c'est normal, est ce qu'il y a un autre moyen de faire ca ?
Je viens de faire un test sur XP SP2 : ça marche chez moi en récupérant la 2ème fenêtre "MozillaWindowCla ss" et en la mettant par ex dans un Static (SetParent()) puis PrintWindow() sur la fenêtre parente du Static
Hwoarang
Merci pour ta reponse mais je n'ai pas tres bien compris l'histoire du static. Voila le code que j'utilise : J'ouvre une fenetre Firefox sur Google (Le titre de la fenetre est Google) puis je lance ce programme : { HWND hWndCur = NULL; char szTmpModuleFN[256]; char is_visible; char is_found = 0; LONG window_style;
EmptyClipboard(); SetClipboardData(CF_BITMAP, hBmp); CloseClipboard(); } else { printf("Aucune fenetre dont le titre commence par "Google" trouveen"); } }
Ensuite, je vais dans paint et quand je colle, il n'y a rien...
"Christian ASTOR" a écrit dans le message de news: On 28 mar, 00:36, "Hwoarang" wrote:
J'ai essayé WM_PRINT et WM_PRINTWINDOW et ca ne marche pas :-(
En fait, l'application que je voudrais faire est une fenetre qui permettrait de recuperer le hwnd de firefox, et de faire une copie de l'ecran dans un bmp, que firefox soit visible ou pas. Le bmp obtenu est une fenetre noir de la taille de ma fenetre d'origine.
Est ce que c'est normal que WM_PRINT et WM_PRINTWINDOW n'aient pas marché dans mon cas ou est ce que c'est normal ? Si c'est normal, est ce qu'il y a un autre moyen de faire ca ?
Je viens de faire un test sur XP SP2 : ça marche chez moi en récupérant la 2ème fenêtre "MozillaWindowClass" et en la mettant par ex dans un Static (SetParent()) puis PrintWindow() sur la fenêtre parente du Static
Merci pour ta reponse mais je n'ai pas tres bien compris l'histoire du
static. Voila le code que j'utilise :
J'ouvre une fenetre Firefox sur Google (Le titre de la fenetre est Google)
puis je lance ce programme :
{
HWND hWndCur = NULL;
char szTmpModuleFN[256];
char is_visible;
char is_found = 0;
LONG window_style;
EmptyClipboard();
SetClipboardData(CF_BITMAP, hBmp);
CloseClipboard();
}
else
{
printf("Aucune fenetre dont le titre commence par "Google"
trouveen");
}
}
Ensuite, je vais dans paint et quand je colle, il n'y a rien...
"Christian ASTOR" <castorix@club-internet.fr> a écrit dans le message de
news:24c56ea5-7f80-4d82-9494-42199edda829@c19g2000prf.googlegroups.com...
On 28 mar, 00:36, "Hwoarang" <hwoaran...@hotmail.com> wrote:
J'ai essayé WM_PRINT et WM_PRINTWINDOW et ca ne marche pas :-(
En fait, l'application que je voudrais faire est une fenetre qui
permettrait
de recuperer le hwnd de firefox, et de faire une copie de l'ecran dans un
bmp, que firefox soit visible ou pas. Le bmp obtenu est une fenetre noir
de
la taille de ma fenetre d'origine.
Est ce que c'est normal que WM_PRINT et WM_PRINTWINDOW n'aient pas marché
dans mon cas ou est ce que c'est normal ? Si c'est normal, est ce qu'il y
a
un autre moyen de faire ca ?
Je viens de faire un test sur XP SP2 :
ça marche chez moi en récupérant la 2ème fenêtre "MozillaWindowClass"
et en la mettant par ex dans un Static (SetParent()) puis
PrintWindow() sur la fenêtre parente du Static
Merci pour ta reponse mais je n'ai pas tres bien compris l'histoire du static. Voila le code que j'utilise : J'ouvre une fenetre Firefox sur Google (Le titre de la fenetre est Google) puis je lance ce programme : { HWND hWndCur = NULL; char szTmpModuleFN[256]; char is_visible; char is_found = 0; LONG window_style;
EmptyClipboard(); SetClipboardData(CF_BITMAP, hBmp); CloseClipboard(); } else { printf("Aucune fenetre dont le titre commence par "Google" trouveen"); } }
Ensuite, je vais dans paint et quand je colle, il n'y a rien...
"Christian ASTOR" a écrit dans le message de news: On 28 mar, 00:36, "Hwoarang" wrote:
J'ai essayé WM_PRINT et WM_PRINTWINDOW et ca ne marche pas :-(
En fait, l'application que je voudrais faire est une fenetre qui permettrait de recuperer le hwnd de firefox, et de faire une copie de l'ecran dans un bmp, que firefox soit visible ou pas. Le bmp obtenu est une fenetre noir de la taille de ma fenetre d'origine.
Est ce que c'est normal que WM_PRINT et WM_PRINTWINDOW n'aient pas marché dans mon cas ou est ce que c'est normal ? Si c'est normal, est ce qu'il y a un autre moyen de faire ca ?
Je viens de faire un test sur XP SP2 : ça marche chez moi en récupérant la 2ème fenêtre "MozillaWindowClass" et en la mettant par ex dans un Static (SetParent()) puis PrintWindow() sur la fenêtre parente du Static
Christian ASTOR
Hwoarang wrote:
Merci pour ta reponse mais je n'ai pas tres bien compris l'histoire du static.
L'utilisation d'un autre contrôle permet de récupérer la fenêtre avec un SetParent() HWND hWndParentOld = SetParent(hWndFirefox, hWndControle); à la fin, on remet bien sûr à l'état initial : SetParent(hWndFirefox, hWndParentOld);
J'ai refait un test : le meilleur contrôle est le SysPager Comme il faut qu'il soit visible (WS_VISIBLE), on le déplace hors de l'écran en x = -2000 par exemple Il supporte bien PrintWindow() directement, contraitement au Static.
En passant, PrintWindow() marche toujours sur la fenêtre principale de Firefox, si elle est visible.
De plus ta méthode pour trouver la fenêtre n'est pas tout-à-fait bonne (le titre peut changer) La fenêtre principale peut être de classe "MozillaUIWindowClass" ou "MozillaWindowClass" selon la version. On fait donc un EnumWindows(), puis GetClassName() dans la CALLBACK puis GetWindowText() et strstr() sur "Mozilla Firefox" par exemple pour l'identifier. Ensuite pour la fenêtre fille (sur laquelle on fait ensuite le SetParent()) : HWND hWndFirefox = FindWindowEx(hWnd, NULL, "MozillaWindowClass", NULL);
Hwoarang wrote:
Merci pour ta reponse mais je n'ai pas tres bien compris l'histoire du
static.
L'utilisation d'un autre contrôle permet de récupérer la fenêtre avec un
SetParent()
HWND hWndParentOld = SetParent(hWndFirefox, hWndControle);
à la fin, on remet bien sûr à l'état initial :
SetParent(hWndFirefox, hWndParentOld);
J'ai refait un test : le meilleur contrôle est le SysPager
Comme il faut qu'il soit visible (WS_VISIBLE), on le déplace hors de
l'écran en x = -2000 par exemple
Il supporte bien PrintWindow() directement, contraitement au Static.
En passant, PrintWindow() marche toujours sur la fenêtre principale de
Firefox, si elle est visible.
De plus ta méthode pour trouver la fenêtre n'est pas tout-à-fait bonne
(le titre peut changer)
La fenêtre principale peut être de classe "MozillaUIWindowClass" ou
"MozillaWindowClass" selon la version.
On fait donc un EnumWindows(), puis GetClassName() dans la CALLBACK puis
GetWindowText() et strstr() sur "Mozilla Firefox" par exemple pour
l'identifier.
Ensuite pour la fenêtre fille (sur laquelle on fait ensuite le
SetParent()) :
HWND hWndFirefox = FindWindowEx(hWnd, NULL, "MozillaWindowClass", NULL);
Merci pour ta reponse mais je n'ai pas tres bien compris l'histoire du static.
L'utilisation d'un autre contrôle permet de récupérer la fenêtre avec un SetParent() HWND hWndParentOld = SetParent(hWndFirefox, hWndControle); à la fin, on remet bien sûr à l'état initial : SetParent(hWndFirefox, hWndParentOld);
J'ai refait un test : le meilleur contrôle est le SysPager Comme il faut qu'il soit visible (WS_VISIBLE), on le déplace hors de l'écran en x = -2000 par exemple Il supporte bien PrintWindow() directement, contraitement au Static.
En passant, PrintWindow() marche toujours sur la fenêtre principale de Firefox, si elle est visible.
De plus ta méthode pour trouver la fenêtre n'est pas tout-à-fait bonne (le titre peut changer) La fenêtre principale peut être de classe "MozillaUIWindowClass" ou "MozillaWindowClass" selon la version. On fait donc un EnumWindows(), puis GetClassName() dans la CALLBACK puis GetWindowText() et strstr() sur "Mozilla Firefox" par exemple pour l'identifier. Ensuite pour la fenêtre fille (sur laquelle on fait ensuite le SetParent()) : HWND hWndFirefox = FindWindowEx(hWnd, NULL, "MozillaWindowClass", NULL);
Hwoarang
Ce que je ne comprend pas, c'est que meme quand ma fenetre firefox est visible, je ne vois qu'un rectangle noir lorsque je colle dans paint. Concernant le setparent, j'ai l'impression que je n'ai pas sysfader (il n'apparait pas dans le gestionnaire de taches). Est ce que je peux utiliser autre chose ?
Merci
"Christian ASTOR" a écrit dans le message de news:47ee25c1$0$21149$
Hwoarang wrote:
Merci pour ta reponse mais je n'ai pas tres bien compris l'histoire du static.
L'utilisation d'un autre contrôle permet de récupérer la fenêtre avec un SetParent() HWND hWndParentOld = SetParent(hWndFirefox, hWndControle); à la fin, on remet bien sûr à l'état initial : SetParent(hWndFirefox, hWndParentOld);
J'ai refait un test : le meilleur contrôle est le SysPager Comme il faut qu'il soit visible (WS_VISIBLE), on le déplace hors de l'écran en x = -2000 par exemple Il supporte bien PrintWindow() directement, contraitement au Static.
En passant, PrintWindow() marche toujours sur la fenêtre principale de Firefox, si elle est visible.
De plus ta méthode pour trouver la fenêtre n'est pas tout-à-fait bonne (le titre peut changer) La fenêtre principale peut être de classe "MozillaUIWindowClass" ou "MozillaWindowClass" selon la version. On fait donc un EnumWindows(), puis GetClassName() dans la CALLBACK puis GetWindowText() et strstr() sur "Mozilla Firefox" par exemple pour l'identifier. Ensuite pour la fenêtre fille (sur laquelle on fait ensuite le SetParent()) : HWND hWndFirefox = FindWindowEx(hWnd, NULL, "MozillaWindowClass", NULL);
Ce que je ne comprend pas, c'est que meme quand ma fenetre firefox est
visible, je ne vois qu'un rectangle noir lorsque je colle dans paint.
Concernant le setparent, j'ai l'impression que je n'ai pas sysfader (il
n'apparait pas dans le gestionnaire de taches). Est ce que je peux utiliser
autre chose ?
Merci
"Christian ASTOR" <castorix@club-internet.fr> a écrit dans le message de
news:47ee25c1$0$21149$7a628cd7@news.club-internet.fr...
Hwoarang wrote:
Merci pour ta reponse mais je n'ai pas tres bien compris l'histoire du
static.
L'utilisation d'un autre contrôle permet de récupérer la fenêtre avec un
SetParent()
HWND hWndParentOld = SetParent(hWndFirefox, hWndControle);
à la fin, on remet bien sûr à l'état initial :
SetParent(hWndFirefox, hWndParentOld);
J'ai refait un test : le meilleur contrôle est le SysPager
Comme il faut qu'il soit visible (WS_VISIBLE), on le déplace hors de
l'écran en x = -2000 par exemple
Il supporte bien PrintWindow() directement, contraitement au Static.
En passant, PrintWindow() marche toujours sur la fenêtre principale de
Firefox, si elle est visible.
De plus ta méthode pour trouver la fenêtre n'est pas tout-à-fait bonne (le
titre peut changer)
La fenêtre principale peut être de classe "MozillaUIWindowClass" ou
"MozillaWindowClass" selon la version.
On fait donc un EnumWindows(), puis GetClassName() dans la CALLBACK puis
GetWindowText() et strstr() sur "Mozilla Firefox" par exemple pour
l'identifier.
Ensuite pour la fenêtre fille (sur laquelle on fait ensuite le
SetParent()) :
HWND hWndFirefox = FindWindowEx(hWnd, NULL, "MozillaWindowClass", NULL);
Ce que je ne comprend pas, c'est que meme quand ma fenetre firefox est visible, je ne vois qu'un rectangle noir lorsque je colle dans paint. Concernant le setparent, j'ai l'impression que je n'ai pas sysfader (il n'apparait pas dans le gestionnaire de taches). Est ce que je peux utiliser autre chose ?
Merci
"Christian ASTOR" a écrit dans le message de news:47ee25c1$0$21149$
Hwoarang wrote:
Merci pour ta reponse mais je n'ai pas tres bien compris l'histoire du static.
L'utilisation d'un autre contrôle permet de récupérer la fenêtre avec un SetParent() HWND hWndParentOld = SetParent(hWndFirefox, hWndControle); à la fin, on remet bien sûr à l'état initial : SetParent(hWndFirefox, hWndParentOld);
J'ai refait un test : le meilleur contrôle est le SysPager Comme il faut qu'il soit visible (WS_VISIBLE), on le déplace hors de l'écran en x = -2000 par exemple Il supporte bien PrintWindow() directement, contraitement au Static.
En passant, PrintWindow() marche toujours sur la fenêtre principale de Firefox, si elle est visible.
De plus ta méthode pour trouver la fenêtre n'est pas tout-à-fait bonne (le titre peut changer) La fenêtre principale peut être de classe "MozillaUIWindowClass" ou "MozillaWindowClass" selon la version. On fait donc un EnumWindows(), puis GetClassName() dans la CALLBACK puis GetWindowText() et strstr() sur "Mozilla Firefox" par exemple pour l'identifier. Ensuite pour la fenêtre fille (sur laquelle on fait ensuite le SetParent()) : HWND hWndFirefox = FindWindowEx(hWnd, NULL, "MozillaWindowClass", NULL);