[NAQ][WIN32 API]Créer un lien hypertexte

Tout sur les langages de programmation.

[NAQ][WIN32 API]Créer un lien hypertexte

Messagepar Crisanar » 26 Août 2005, 12:07

(NAQ = Not A Question -© Neitsa?- )

Salut à tous,
Lors de mes recherches pour créer un lien hypertexte, je suis tombé sur de nombreuses sources parfois complètement farfelues et/ou compliquées.
Je viens de trouver par hasard une méthode assez simple sans subclassing et autres:
(Il faut un label sur votre fenêtre avec le style SS_NOTIFY, je l'ai ici appelé IDC_STCABOUT)
Code: Tout sélectionner
[...]
switch(uMsg)
   {
   case WM_INITDIALOG:   /* Initialisation de l'application */      
      // Définir le curseur main pour le label
      SetClassLong(GetDlgItem(hDlg, IDC_STCABOUT), GCL_HCURSOR, (LONG)LoadCursor(NULL, MAKEINTRESOURCE(32649)));
[...]
      break;      

   case WM_COMMAND:      
      if(HIWORD(wParam) == BN_CLICKED)
      {
         switch( LOWORD(wParam))
         {         
         case IDC_STCABOUT:            ShellExecute(hDlg,"open","http://users.skynet.be/crisanar",NULL,NULL,SW_MAXIMIZE);   // Ouvrir le site dans une fenetre.
            break;                  
         }
      }            
      break;


   case WM_CTLCOLORSTATIC:      /* Le label va être colorié */      
      SetBkMode((HDC)wParam,TRANSPARENT);               // Couleur de fond = transparente
      SetTextColor((HDC)wParam,0x0FF0000);         // Couleur du texte = bleue               
      return (LRESULT)GetStockObject(NULL_BRUSH);   // Ne pas peindre le static
[...]


Je n'ai pas utilisé le subclassing car ce n'est pas nécessaire mais il faut bien savoir que selon la complexité de l'aspect graphique de votre lien, vous devrez sans doute y recourir (je pense par exemple à un lien qui change de couleur s'il est survollé).

Concernant le shellexecute (si je ne me suis pas trompé dans la syntaxe), si votre navigateur par defaut est IE et que dans les options des dossiers vous n'avez pas coché la case "Ouvrir les fenêtres des dossiers dans un processus différent" (Ce qui est le cas par défaut), le lien sera ouvert dans la dernière page IE ouverte. Pour FF, çelà dépendra de vos réglages dans les options avancéees.
Il existe toutefois un moyen d'ouvrir le lien dans une nouvelle fenêtre mais je le posterai peut-etre dans un futur tutoriel.

Voilà, si vous avez des remarques ou questions, n'hésitez pas.

Bonne programmation,
Crisanar
Image
Avatar de l’utilisateur
Crisanar
Semi-Dieu du cracking
Semi-Dieu du cracking
 
Messages: 1821
Inscription: 23 Mai 2004, 16:52
Localisation: Belgique

Messagepar Deamon » 26 Août 2005, 13:02

sympa ces NAQ Crisanar :p
Deamon

Les connaissances qu'on a cherchées restent, celles qu'on n'a pas cherchées se perdent. [Baden-Powell]
En un mot : cherche sur Google avant de demander !
Avatar de l’utilisateur
Deamon
Triumvirat
Triumvirat
 
Messages: 4374
Inscription: 25 Janvier 2004, 12:46
Localisation: Devant mon PC


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 1 invité