affecter un thread graphique à une sortie graphique - C++ - Programmation
Marsh Posté le 17-09-2008 à 10:34:18
Déplacer la fenêtre sur le deuxième écran?
Pourquoi tu veux forcer ça? La plate-forme est fixe et immuable, ton programme ne tournera que sur une machine?
Marsh Posté le 17-09-2008 à 18:30:04
Certaines zones de mon IHM sont actives et ouvrent une autre boite de dialogue.
Lorsque je déplace la fenêtre principale vers le deuxième écran, le pop-up s'ouvre sur le premier!!!!!
Puisque toutes mes boites de dialoguesont gérées dans le même thread, je me disais que forcer ce thread à afficher sur le deuxième écran permettrait de régler ce problème!!!
Marsh Posté le 17-09-2008 à 18:36:28
Citation : Lorsque je déplace la fenêtre principale vers le deuxième écran, le pop-up s'ouvre sur le premier!!!!! |
Ben avant d'ouvrir ton pop up, calcules le centre de ta fenetre principale, et utilises le comme centre de ton pop up, ou un truc de ce genre.
A+,
Marsh Posté le 17-09-2008 à 20:31:04
Tu as 2 écrans, mais un seul bureau en réalité. Tu utilises les mêmes fonctions pour dessiner sur l'un des 2 écrans. Ton écran principal détermine l'origine (en haut à gauche), et selon si le 2nd écran se trouve à gauche ou à droite (pas sur ta table, mais dans les paramètres d'affichage de windows), les coordonnées de ton 2nd écran varieront : pour le 2nd écran à gauche ça sera certainement des coordonnées négatives en X.
Ainsi, si tu souhaites ouvrir une popup sur le 2nd écran, il te suffit de changer les coordonnées de ta popup.
Je ne sais pas si il est possible de détecter par des appels systèmes le nombre d'écrans de la machine cible ainsi que leurs positions respectives. Voir MSDN ( ) pour plus d'infos.
Marsh Posté le 17-09-2008 à 21:46:28
Merci pour vos réponses, je vais faire quelques essais.
J'ai un autre problème, rendre transparent le fond d'un CEdit mais je vais poster un autre sujet je pense (pas compris le principe d'intercepter le message WM_CTLCOLOR du CEdit en question...)
Marsh Posté le 16-09-2008 à 19:32:30
Bonjour à tous,
J'utilise Visual2008 et j'ai fait un programme comportant plusieurs threads. Parmis ces threads il y a des threads de travail ainsi qu'un thread graphique.
J'ai deux écrans en mode étendu.
Ainsi, je voulais savoir s'il était possible de faire en sorte que les IHM s'affichent sur le deuxième écran????
Merci d'avance.