begin process at 2012 05 30 07:47:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

GUI

 > 

tunning


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

tunning

jeudi 17 août 2006 à 11:42:07 | tunning

couranrjet

Bonjour,
Voilà mon environnement de travail est visual C++ 7 ou 8.
Je cherche un moyen de modifier la forme d'un pushbuton.
Je souhaite modifer sa forme rectangulaire en forme d'ellipse.
Je cherche au ssi un moyen pour pouvoir y faire des dégradés et des bordures.
Est ce que quelqu'un pourrait éclairer ma lanterne?Merci.
Bruno 


jeudi 17 août 2006 à 16:56:18 | Re : tunning

racpp

Administrateur CodeS-SourceS
Salut,
Le bouton doit être de style BS_OWNERDRAW. Tu peux utiliser la fonction CreateEllipticRgn() pour créer une région sous forme d'ellipse. Tu appliques ensuite cette région à ton bouton avec la fonction SetWindowRgn(). Pour les contours, tu dois les dessiner toi-même dans la fonction de dessin du bouton. Tu peux aussi utiliser des images BITMAP pour les contours et les dégradés.


jeudi 17 août 2006 à 21:02:25 | Re : tunning

couranrjet

Salut Racpp,
Merci pour ton aide.
Pourrait on  me préciser l'endroit ou je dois placer les fonctions CreateEllipticRgn() et SetWindowRgn()?
J'ai essayé dans Resource.h... bo
Y a t il une bibliothèque à activée ( # include ... .h) .
On parle de wingdi.h et de "dlls/gdi/region.c".
C'est pas encore évident pour moi donc si vous pouvez m'aider, merci
Bruno





jeudi 17 août 2006 à 21:39:36 | Re : tunning

racpp

Administrateur CodeS-SourceS
Rien de spécial à activer. Seul "#include <windows.h>" suffit. Ces fonctions doivent être utilisées juste après la création du bouton avec CreateWindow().

vendredi 18 août 2006 à 01:16:52 | Re : tunning

couranrjet

Racpp, merci pour ton aide.
Mais je patine.
IDC_ELLIPSE identifie le bouton sur lequel je travaille.
Voici un bout de code( en gras ce que j'ai rajouté) :
...
#define IDC_ELLIPSE                        1000   
HWND hwnd;
CreateWindow("button"," ",BS_OWNERDRAW,112,40, 18,18, hwnd,       
                                   (HMENU)111,GetModuleHandle(NULL),NULL);

// Next default values for new objects
#ifdef APSTUDIO_INVOKED
..
Aurais-tu peut-être un exemple simple qui illustre CreateWindow et l'emplacement exacte des ligne de code à placer?
Car je ne comprends pas toutes les explications de MSDN et les exemples sur le net parlent de fonctions Callback et WinMain, propres aux applications WIN32 je suppose.
Merci.
Bruno
Merci.

...
vendredi 18 août 2006 à 10:09:52 | Re : tunning

mogwai93

HWND hCtrl;
HRGN MyRgn;
       
hCtrl = CreateWindowEx(0, "button", "test",
        WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN, 100, 100, 100, 100,
        hwnd, (HMENU)1000, GetModuleHandle(NULL), NULL);
  
MyRgn=CreateEllipticRgn(0, 0, 100, 100);
SetWindowRgn(hCtrl, MyRgn, TRUE);

et là tu as un bouton en forme de cercle !

vendredi 18 août 2006 à 11:08:39 | Re : tunning

couranrjet

Mogwai,
Merci pour ton aide.
Pourrais tu me préciser où je dois mettre ces lignes de code dans le programme.

Là j' ai mis tes qq lignes en lieu et place du code en gras (mail précédent)  dans mon programme (MFC application sur VC++ 7.) dans Resource.h.
Mais j'ai des erreurs du type:
error C2040: 'hCtrl' : 'int' differs in levels of indirection from 'HWND' .
Peut-être faut il placer tes lignes de code à un endroit particulier où ajouter une librairie quelque part ou y a un truc qui m'échappe encore... bo
Ne me laissez pas me morfondre. Merci.
Bruno 



...

vendredi 18 août 2006 à 11:24:25 | Re : tunning

mogwai93

en MFC, je ne sais plus (ca fait trop longtemps que je ne touche plus aux MFC.....)


en API, tu peux le mettre ici :
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HWND hCtrl;
    HRGN MyRgn;
       
    switch (message)                  /* handle the messages */
    {
        case WM_CREATE :
                 // mettre le code ici
                break;
...
   }
}

vendredi 18 août 2006 à 16:26:17 | Re : tunning

racpp

Administrateur CodeS-SourceS
Salut,
mogwai93 >> Ton exemple ne suffit pas pour avoir un bouton rond. Comme j'ai précisé plus haut, le bouton doit être de style BS_OWNERDRAW. On doit dessiner les contours pendant le traitement du message WM_DRAWITEM. Il faut penser à tous les cas: normal, enfoncé, grisé etc.

couranrjet >> Moi non plus je n'aime pas les MFC. Mais le principe reste le même. Je pense que tu peux récupérer le HWND du bouton avec la fonction GetDlgItem(). Les deux autres fonctions viendront juste après. Tout cela pendant l'initialisation de la boite de dialogue (On_InitDialog). Le dessin des contours se fait dans (On_DrawItem) grâce aux fonctions comme Ellipse(). Le bouton doit avoir le style BS_OWNERDRAW. Si l'éditeur de ressources ne permet ce style, tu peux utiliser la fonction SetWindowLong() suivie de SetWindowPos().
lundi 21 août 2006 à 13:32:07 | Re : tunning

couranrjet

Hello,
Merci Racpp.
Le GetDlgItem donne un CWnd* et pas un HWND.
Donc je cherche une fonction qui donne l'HWND de l'IDC_  ou une autre qui convertit un CWnd* en HWND...
Si qq s'y connait pour ce problème, son aide est la bienvenue.
Je suis en train de voir que sont  CWnd et HWND exactement ds les MFC...
peut-être aurais je une idée et si oui je vous en ferai part...

Là je replonge dans le Mordor des MFC.

Couranrjet

 

...


1 2

Cette discussion est classée dans : cherche, moyen, forme, tunning


Répondre à ce message

Sujets en rapport avec ce message

#if et #include [ par Xilofeon ] salutvoila je cherche le moyen d'inclure une ressource externe que si c'est celle si est présente et installé.En gros ma ressource n'est pas indispens je cherche un convertiseur graphique de temps (sous la forme d'un cercle) Une heure = 100 centièmes d'heure [ par guydu27 ] J'ai déja eu l'occasion de voir ce graphique, il a la forme d'un cercle et un peu comme une montre, il est divisé en 60 minutes notées sur le contour Forme quelconque [ par repial ] Bonjour à tous,je cherche à modéliser un objet (par exemple une patate) par sa surface de contour (contour fermé donc). Disons que j'ai un tableau dan Je cherche un moyen de contrôler les pixels en C/C++ [ par EnjeeDenton ] J'aimerai bien pouvoir contrôler l'affichage pixel par pixel sous console (enfin si c'est possible !).Merci.Enjee Denton Cherche codeur motivé [ par Delirium ] Cherche un codeur avec pas mal d'expériance en C/C++ pour creer quelques code pour un serveur IRC (place d'admin) ainsi pour créer de nouveau services étudiant cherche un developpeur à interviewer ! [ par o00zeus00o ] Salut@tous, je suis étudiant en informatique et je dois interviewer une personne exercant le metier qui m'interesse, je cherche donc un developpeur pr cherche projet vc++6 [ par xbabilone ] Salut a tous je cherche un projet simple pour visual c++6 comportantun bouton "parcourir" qui ouvre un explorateur pour choisir un fichier ou un reper Cherche intephace graphique simple [ par yggy ] Salut tlmje cherche une intephace graphique simple avec des bouttons des textbox etc...en C ou Cpp pour dev cpp si quelqu'unpeut m'aider ça serait coo Afficher la table ARP [ par recha ] Bonjour à tous ^^ Je cherche depuis un moment à pouvoir afficher la table ARP en C sans y parvenir... Je sais pas quels fonctions utilisé ni comment l Cherche projet c++ [ par akira65 ] Bonjour, je développe dans le cadre de mes études mais les cours ne vont pas assez vite pour moi javascript:Insert_Emoticon('/imgs2/smile_wink.gif');


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 0,452 sec (4)

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