begin process at 2012 02 12 10:29:08
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > CLABEL : UN CSTATIC AMÉLIORÉ

CLABEL : UN CSTATIC AMÉLIORÉ


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Initié Date de création :10/07/2004 Date de mise à jour :14/07/2004 11:44:26 Vu / téléchargé :3 983 / 292

Auteur : garslouche

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

CLabel est une classe permettant d'améliorer le CStatic de base.
Elle permet de nombreuses opérations sur les textes:
- Redimensionnement automatique du label pour qu'il prenne exactement la taille du texte
- Transformation en lien hypertexte
- Alignement du texte ( haut, bas, gauche, droite, centré horizontalement ou verticalement )
- Choix de la couleur du texte et de l'arriere-plan
- Possibilité de rendre le fond transparent
- Accès simplifié aux styles gras, italique, souligné
- Info-bulle

====================================== ===
= ! =   Le mode d'emploi est avec le fichier Label.h   = ! =
=========================================



La fonctionnalité "Lien-hypertexte" permet d'utiliser le style IE avec la main comme icone. Cet icone n'etant pas standard je l'ai mis dans une DLL. Le projet pour créer cette DLL est joint.


 Conclusion

J'aimerais en faire un composant à part entière pour en simplifier l'utilisation mais je ne connais pas ActiveX. Si quelqu'un peut m'aider ou me diriger vers un bon tuto....

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

14 juillet 2004 11:44:26 :
Correction d'un bug : les tabulations (\t) n'étaient pas prises en compte

 Sources du même auteur

Source avec Zip [WIN32] LANGAGE DE SCRIPT POUR AUTOMATISER DES ACTIONS DANS ...
PROPRIÉTÉS D'UN FICHIER / D'UN DOSSIER FAÇON WINDOWS
MELANGER N'IMPORTE QUOI
Source avec Zip LES FONCTIONS DE MATH.H REPROGRAMMÉES
Source avec Zip Source avec une capture CALENDRIER INCRUSTÉ SUR LE BUREAU [WIN32]

 Sources de la même categorie

Source avec Zip ÉDITEUR DE RECTANGLES EN CONSOLE par seoseo
CONVERSION DE FICHIER EN FICHIER BMP par seoseo
Source avec Zip DETECTEUR EJP par idpro
Source avec Zip Source avec une capture SHOP MANAGER CONSOLE SUR WINDOWS par antho974
Source avec Zip JOUR DE NAISSANCE par fredg19

Commentaires et avis

Commentaire de magic_Nono le 13/07/2004 13:47:44

très bien,
en 3 clics et un peu de code on arrive au résultat escompté, sans se pencher sur ton code

Bonne bibli!

Magicalement
Magic Nono: [red]l'informagicien![/red]

Commentaire de magic_Nono le 15/07/2004 10:33:40

conseil de prog:
évite les goto... (surtout si il y en a un seul)

OnClicked() modifié & commenté devient :


void CLabel::OnClicked()
{
/// -----------------------------------------------------
/// ---------------- CLabel::OnClicked() ----------------
/// -----------------------------------------------------
/// -----  Objectif : clic de l'utilisateur
/// -----  Auteur(s) : Grégory Allouche 10/07/04
/// -----  PreCond : /
/// -----  PostCond : /
/// -----  Etat : 1 (-1<0<1<2)
/// -----  MaJ 14/07/04 : suppression du goto & commentaires formalisés
/// -----------------------------------------------------
/// -----  Var Utilisées de la classe (1) : m_strUrl
/// -----  Var Internes à la fonction (3) : ShellExecute ,err ,hKey
/// -----  Var Utilisées par adresse (2) : buff ,valName
/// -----  Var In  (1) : m_strUrl
/// -----  Var In  Globales (1) : err
/// -----  Var In  Globales Constantes (3) : ERROR_SUCCESS ,HKEY_CLASSES_ROOT ,SW_NORMAL

///algo : SI une URL est spécifiée
if(m_strUrl.GetLength())
{
///algo : Recherche du navigateur par défaut
HKEY hKey;
///algo : SI on arrive à lire la base de registres,
if( RegOpenKey(HKEY_CLASSES_ROOT,"http\\shell\\open\\command", &hKey) == ERROR_SUCCESS)
{
DWORD size=512;
unsigned char buff[512];
char valName[512];
DWORD type;
if( RegEnumValue(hKey, 0, valName, &size, NULL, &type, buff, &size) == ERROR_SUCCESS )
{
CString strCommandLine=buff;
CString strExe;
CString strArgs;
strCommandLine.TrimLeft();
strCommandLine.TrimRight();
///algo : separe l'EXE des paramètres
if(strCommandLine.Left(1) =="\"")
{
int nPos=strCommandLine.Find('"', 1);
strExe=strCommandLine.Mid(1, nPos - 1);
strArgs=strCommandLine.Mid(nPos+1);
strArgs.TrimLeft();
}
else
{
strCommandLine+=" ";
int nPos=strCommandLine.Find(' ');
strExe=strCommandLine.Left(nPos);
strArgs=strCommandLine.Mid(nPos+1);
}
///algo : SI %1 est utilisé
if(strArgs.Find("%1") != -1)
///algo : le remplace par l'url
strArgs.Replace("%1", m_strUrl);
else ///algo : SINON
///algo : ajoute l'url aux paramètres existants
strArgs+=" \""+m_strUrl+"\"";
///algo : lance le navigateur par défaut
ShellExecute(NULL,"open", strExe, strArgs, NULL, SW_NORMAL);
}
}
else///algo : SINON
///algo : utilise ShellExecute en desespoir de cause
ShellExecute(NULL,"open", m_strUrl,"", NULL, SW_NORMAL);

}
return;
}

Commentaire de magic_Nono le 15/07/2004 12:12:31

un petit add-on, pour les mails...

void CLabel::SetMail(const CString strMail, const BOOL bUseIEStyle)
{
/// -----------------------------------------------------------------------------------------------
/// ---------------- CLabel::SetMail(const CString strUrl ,const BOOL bUseIEStyle) ----------------
/// -----------------------------------------------------------------------------------------------
/// -----  Objectif : init un lien vers une adresse EMail
/// -----  Auteur(s) : Bruno Celle 15/07/04
/// -----  PreCond : strMail de type 'a@a.a'
/// -----  PostCond : /
/// -----  Etat : 1 (-1<0<1<2)
/// -----------------------------------------------------------------------------------------------
/// -----  const CString strMail : mail
/// -----  const BOOL bUseIEStyle(par défaut : 'FALSE') : cf UseIELinkStyle()
/// -----------------------------------------------------------------------------------------------
/// -----  Var Utilisées de la classe (1) : m_strUrl
/// -----  Var Muettes (cf.partie préc) (2) : bUseIEStyle ,strUrl
/// -----  Var In  (2) : bUseIEStyle ,strUrl
/// -----  Var In  Globales Constantes (1) : SS_NOTIFY
/// -----  Var Out (1) : m_strUrl

if(strMail =="")
{
RemoveUrl();
return;
}
CString strURL="mailto:";
strURL+=strMail;
SetUrl(strURL,bUseIEStyle);
return;
}

Commentaire de garslouche le 15/07/2004 15:17:37

Pour les goto, je sais qu'il est coutume de dire qu'il faut s'en passer mais c'est unisuement conventionnel...
Je m'explique:
1) Que fait le compilateur au final ? Des JMP ! C'est-à-dire des goto
2) Il me semble que le code que j'ai fourni ici est plus lisible que des if imbriqués

En fait de manière générale je suis pour éviter les goto à moins qu'on y gagne en lisibilité (et ça arrive plus souvent qu'on ne le crois)


Pour SetMail, c'est-une bonne idée. J'essaierai de l'intégrer ce WE. J'y ajouterai peut-être quelques paramètres supplémentaires (par exemple subject).


Merci pour ces commentaires

Commentaire de Urgo le 16/07/2004 14:03:17

Je suis d'accord avec toi sur les goto..

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,310 sec (3)

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