Transparence

Résolu
unionx Messages postés 190 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 18 mars 2009 - 16 nov. 2006 à 22:05
unionx Messages postés 190 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 18 mars 2009 - 18 nov. 2006 à 12:30
bonjour
je peux savoir comment peux faire le transparence d'une fenetre, cette commande n'est pas connu sous mon vc++ 6
SetLayeredWindowAttributes  :(
et je me demande si il a une possiblité pour faire le transparence

6 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
18 nov. 2006 à 01:41
Une autre solution consiste à obtenir un pointeur sur la fonction SetLayeredWindowAttributes() contenu dans user32.dll.
Voici comment procéder:

// Définir en global les constantes à utiliser :
#define WS_EX_LAYERED 0x00080000
#define LWA_ALPHA 0x00000002
#define LWA_COLORKEY 0x00000001

// Définir un type de pointeur pour la fonction SetLayeredWindowAttributes:
typedef BOOL (WINAPI *pFonction)(HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);

// Obtenir le handle de user32.dll
HMODULE hDLL = GetModuleHandle("USER32.DLL");

// Obtenir un pointeur sur la fonction:
pFonction SetLayeredWindowAttributes = (pFonction) GetProcAddress(hDLL,"SetLayeredWindowAttributes");

Ainsi, cette fontion sera utilisable dans ton code avec VC6.
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
16 nov. 2006 à 23:53
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
16 nov. 2006 à 23:59
Oh et puis tu ferais peut-être bien de télécharger la PSDK (et passer sous VC2005 du même coup). Comme ça, tu aura les lib les plus récentes (et le compilateur aussi).

C++ (@++)<!--
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
17 nov. 2006 à 01:59
Salut,
Après avoir mis à jour VC6 ou téléchargé la version gratuite VC 2005 Express, il faudra permettre au compilateur de reconnaitre les fonctions comme SetLayaredWindowAttributes() qui n'existe que sur Windows 2000 et supérieur. Pour cela on ajoute la ligne suivante au tout début du code (avant #include <windows.h>):
#define _WIN32_WINNT 0x0500
Si on veut profiter des autres fonctions disponibles sur XP uniquement, il faut la remplacer par:
#define _WIN32_WINNT 0x0501
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
unionx Messages postés 190 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 18 mars 2009
17 nov. 2006 à 22:34
snif snif sans succes la command SetLayeredWindowAttributes reste inconnu pour mon VC++6 , en plus j'ai pas trouver le compilateur vc2005 complet , je n'est que la beta de 2005 et il me dis comme erreur
fatal error C1083: cannot open include file: 'afxwin.h': No such file or directory
je pense qu'il a pas la MFC sur ce compilateur c'est pour ca :s
et je revien sous mon prefere vc++6 mais la commande marche plus et comme erreur je recoi ce message 'SetLayeredWindowAttributes' : undeclared identifier

Note:j'ai deja fais ce que tu m'as dis , la declaration de cette #define et j'ai telecharger PSDK :( marche plus sniff sniff
a l'aide je veux la transparence, merci avance
0
unionx Messages postés 190 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 18 mars 2009
18 nov. 2006 à 12:30
dis moi Mr [auteurdetail.aspx?ID=295159 racpp]comment peux merci les gens de ce site ?
ca marche :D et je suis content looooooool enfin le transparence et dans mes mains

Merciiiiiiiiiiii
0
Rejoignez-nous