Fenêtre bureau et format icone

cs_plom Messages postés 23 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 mars 2007 - 28 avril 2005 à 12:22
cs_plom Messages postés 23 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 mars 2007 - 28 avril 2005 à 15:34
Bonjour
Je souhaiterai réaliser une petite appli. J'aimerai faire un genre de menu démarrer mais sur le bureau.
La fenêtre de l'appli devra être qqchose comme une icône et elle restera consatement "scotché" sur le bureau. J'aimerai que lors d'un Windows+D l'appli ne se replie pas.

Est-ce possible ?
Comment ?

On m'a dit de faire une fenêtre fille du bureau, se que j'ai réussi à faire mais comment faire pour ne pas avec une vraie fenêtre mais plutôt une icone ?

Merci

10 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 avril 2005 à 13:06
Tu veux quoi au juste ?



Si je comprends bien, tu peux découper ta fenêtre en utilisant les
régions pour que ta fenêtre ne soit plus rectangulaire, mais de la
forme de l'icône.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgotoP.com/popapi/
0
cs_plom Messages postés 23 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 mars 2007
28 avril 2005 à 14:38
Pour être plus clair.
Je souhaite avoir une icone "jeux", "programmation" etc... sur mon bureau et lorsque je clique dessus à la manière d'un menu démarrer, ça ouvre une liste de mes jeux ou autre.
Il me faudrai donc une appli qui n'ai pas la "forme" d'une fenêtre mais plutôt d'une icone ou d'un bouton.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 avril 2005 à 14:44
Donc c'est bien cà : utilise les région pour découper tes feuilles à la
forme de ton icône (j'ai posté une source là dessus, mais c'est du VB
et non du C++ !)

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
cs_plom Messages postés 23 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 mars 2007
28 avril 2005 à 14:53
Et sinon faut-il bien faire ma fenêtre comme child du desktop ?
Comment puis je faire pour qu'elle ne se repli jamais même avec un "Windows+D"

Aussi, j'aimerai qu'elle soit assez transparente et que lorsqu'on passe dessus qu'elle devienne opaque.

J'ai mis ceci dans mon WindowsProc



case WM_MOUSEHOVER :


{


MakeOpaque();



//SetTimer(hWnd, pTransparentTimer, 100, MakeOpaque());


}



case WM_MOUSELEAVE :


{


MakeTransparent();



//SetTimer(hWnd, pTransparentTimer, 100, MakeTransparent());


}

Ensuite j'ai fait deux fonctions (j'ai commenté pour tester)


TIMERPROC MakeTransparent(void)


{



/*SetLayeredWindowAttributes(hWnd, NULL, bAlpha, LWA_ALPHA);




if(!bIsTransparent)


{


bAlpha--;


if(bAlpha <TransparentValue) bIsTransparent true;


}*/


MessageBox(hWnd, "Transparent", "Transparent", NULL);



return 0;


}


TIMERPROC MakeOpaque(
void)


{



/*SetLayeredWindowAttributes(hWnd, NULL, bAlpha, LWA_ALPHA);




if(bIsTransparent)


{


bAlpha++;


if(bAlpha >255) bIsTransparent false;


}*/


MessageBox(hWnd, "Opaque", "Opaque", NULL);



return 0;


}

Ma fenêtre apparait bien transparente mais ne change jamais...
0

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

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 avril 2005 à 15:00
WM_MOUSEOVER



Ca devrait mieux marcher avec cette constante ;)



Sinon, pour le Windows+D, je ne sais pas !


DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
cs_plom Messages postés 23 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 mars 2007
28 avril 2005 à 15:03
Marche pas MOUSEOVER chez moi.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 avril 2005 à 15:12
Oups, c'est WM_MOUSEMOVE qu'il faut utiliser

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
cs_plom Messages postés 23 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 mars 2007
28 avril 2005 à 15:21
Ok merci bien, ça fonctionne mais bon ma fenêtre deviens 100% transparent, j'vais tenter de corriger ça.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 avril 2005 à 15:29
Dans ton SetLayeredWindowAttributes(hWnd, NULL, bAlpha, LWA_ALPHA);

Remplace le
bAlpha
par une valeur de transparence comprise entre 0 et 255.


DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
cs_plom Messages postés 23 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 1 mars 2007
28 avril 2005 à 15:34
Mon bAlpha je le calcul :

void MakeTransparent(
void)


{



if(!bIsTransparent)


{


bAlpha--;


if(bAlpha <TransparentValue) bIsTransparent
true;


}


MessageBox(hWnd, "Transparent", "Transparent", NULL);


SetLayeredWindowAttributes(hWnd, NULL, bAlpha, LWA_ALPHA);


}


MakeOpaque(
void)


{



if(bIsTransparent)


{


bAlpha++;


if(bAlpha >254) bIsTransparent
false;


}


MessageBox(hWnd, "Opaque", "Opaque", NULL);


SetLayeredWindowAttributes(hWnd, NULL, bAlpha, LWA_ALPHA);


}
0
Rejoignez-nous