begin process at 2012 05 30 09:22:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

SetWindowRgn() sur boutons


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

SetWindowRgn() sur boutons

mercredi 14 septembre 2005 à 20:55:40 | SetWindowRgn() sur boutons

AlexMAN

Membre Club
Bonsoir,

Voila, j'ai un petit souci : j'aimerais créer un bouton avec les 'coins arrondis', pour cela, je crée une region (CreateRoundRectRgn()), puis l'applique au bouton par le biais de SetWindowRgn(). Mais voila, ca ne fonctionne pas, les 2 fonctions ne renvoient aucune erreur ("Operation reussie"), et lorsque je teste sur une fenetre, ca fonctionne parfaitement.
Me faut-il obligatoirement passer par un bouton ownerdraw ?

Mon code :

hRgn = CreateEllipticRgn(0, 0, 70, 30);

for (i = 0; i < 3; ++i) {

hBtnAtout[i] = CreateWindowEx(0, "BUTTON", 0, WS_CHILD | WS_VISIBLE, x, rcTour.bottom - 40, 70, 30, hwnd, (HMENU)IDBT_BTNATOUTFIRST + i, hInstance, 0);

SetWindowRgn(hBtnAtout[i], hRgn, 1);

x += 76;

}

//DeleteObject(hRgn); MSDN conseille de ne pas "supprimer" l'objet etant donné qu'aucune copie n'est conservée.


Merci d'avance,

Cordialement, Alex

+2(p - n)
mercredi 14 septembre 2005 à 21:56:27 | Re : SetWindowRgn() sur boutons

BruNews

Administrateur CodeS-SourceS
coordonnées de la région correspondent au rectangle bouton ?

ciao...
BruNews, MVP VC++
mercredi 14 septembre 2005 à 22:39:23 | Re : SetWindowRgn() sur boutons

AlexMAN

Membre Club
Oui ca correspond, enfin je pense : je dois utiliser le "ClientRect" ou le "WindowRect" ? Avec le "WindowRect", ca ne marche pas, mes boutons ne sont plus repeints (certainement parce que la region que je crée n'est pas visible) alors qu'avec le "ClientRect", les boutons "fonctionnent"...

+2(p - n)
mercredi 14 septembre 2005 à 22:47:04 | Re : SetWindowRgn() sur boutons

BruNews

Administrateur CodeS-SourceS
Passe les en ownerdraw, va falloir une routine de dessin.

ciao...
BruNews, MVP VC++
mercredi 14 septembre 2005 à 23:06:34 | Re : SetWindowRgn() sur boutons

AlexMAN

Membre Club

CircleObj = CreateRoundRectRgn(0, 0, (Objet.Width / Screen.TwipsPerPixelY), (Objet.Height / Screen.TwipsPerPixelX), 20, 20) 
SetWindowRgn Objet.hwnd, CircleObj, True

http://vbfrance.com/code.aspx?ID=18395

Une vieille source a moi, pourquoi ca fonctionne en VB ?

+2(p - n)

mercredi 14 septembre 2005 à 23:14:17 | Re : SetWindowRgn() sur boutons

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
parce que tout est deja hooké, ownerdraw, premaché et prédigéré en vb, le prix de tout cela est une virtual machine à installer et une lenteur abominable qui font qu'on n'a jamais fait un logiciel en vb.

ciao...
BruNews, MVP VC++
mercredi 14 septembre 2005 à 23:16:20 | Re : SetWindowRgn() sur boutons

AlexMAN

Membre Club
Ok.
Donc merci a toi Brunews.

+2(p - n)
jeudi 15 septembre 2005 à 09:34:37 | Re : SetWindowRgn() sur boutons

julienbj

Réponse acceptée !
J'ai eu un probleme similaire. Le bouton était cliquable seulement sur la région que j'avais défini, mais était dessiné entierement.
J'avais résolu le problème en mettant le style WS_CLIPCHILDREN, et là, plus de problème.

Vive le C
Tchao
Savon
jeudi 15 septembre 2005 à 19:03:39 | Re : SetWindowRgn() sur boutons

AlexMAN

Membre Club
Ca marche parfaitement, c'est bon a savoir mais tout de meme etonnant, je ne vois pas pourquoi en ajoutant ce style au bouton (et non pas a la fenetre), ca marche...
Merci a toi julienbj !

+2(p - n)


Cette discussion est classée dans : bouton, boutons, fonctionne, setwindowrgn, hrgn


Répondre à ce message

Sujets en rapport avec ce message

bouton personnalise [ par MrKribou ] Comment creer des boutons personnalises (les boutons ok et companie) je veux dire, tout simplement ajouter une image par exemple au bouton. Ya t'il un Boutons visibles et invisibles [ par arb ] BonjourDébutant en C++ (Visual C++ 6.0), j'ai posé 2 boutons sur une form. Je cherche à rendre un bouton invible en cliquant sur l'autre ou a changer Probleme C++Builder, gestion de boutons etc. [ par FXL ] Bonjour a tous, je vous écris car j'ai un projet de licence a réaliser qui consiste a faire une interface graphique, créer un petit logiciel simple et Retrouver un bouton [ par kazimir34 ] Bien le bonsoir.J'ai créé une pitite interface .net dans laquelle j'ajoute des boutons dynamiquement.Le truc c'est qu'à un moment j'aimerais bien que super urgent :probleme de creation d'un nombre indefini de boutons [ par chriscrepin1 ] je dois crée un nombre indefini de bouton dans un dialog j'ai reussi mais je n'arrive pas a gerer les evenement dessus j'ai defini un evenement pour l Api >> les Régions ( HRGN ) [ par elflink ] Bonjour à tous,Je vous expose très brièvement mon probleme :HRGN hRgn2 = hRgn;SetWindowRgn( hWnd , hRgn2 , TRUE); >> ne fonctionne pas à l'inverse de bitmap sur un bouton [ par leprov ] salut a tousbon voila mon probleme. j'ai plusieurs boutons sur lesquels sont mis des bitmaps, cependant, au fur et a mesure de l'execution, ces bitmpa Comment changer le texte d'un bouton dans une toolbar [ par dvt_robo ] Salut, je créer une toolbar (en Win32) pour pouvoir utiliser des dropdown boutons, J'affiche du texte sur ces boutons que j'aimerai modifier lorsque j Bouton- - Barre d'outil [ par esquiule ] Bonjour,je voudrais juste un petit renseignement, j'ai créé une application MFC contenant une barre d'outil dont les boutons lancent différentes fenêt redimensionnement d'une dialogue et déplacement des boutons [ par cosmobob ] j'ai une boite de dialogue avec un bouton en bas a droite, et quand le boite de dialogue est maximisée, j'aimerai que le bouton se trouve a nouveau en


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,981 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales