IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Afficher une image en dehors de la fenetre


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 68
    Points : 56
    Points
    56
    Par défaut Afficher une image en dehors de la fenetre
    Bonjour

    Bon, je le redit : je suis tout nouveau et débutant en C, j'essai de bricoler des trucs a droite et a gauche...
    Je suis en train de créer une petite dll, qui me permet actuellement d'afficher un texte en dehors de ma fenetre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <windows.h>
    #define EXPORT __declspec (dllexport)
    
    
    
    RECT SetDRect(short x, short y, short size){
    RECT retRect = {x,y,x+size,y+size};
    return retRect;
    }
    
    EXPORT int APIENTRY_WinMain(double n1, double n2, char* txt,double c1)
    {
    HDC DeskTopDC = GetDC(HWND_DESKTOP);  
    RECT drawRect;
    
    SetTextColor (DeskTopDC, c1);
    SetBkColor (DeskTopDC, RGB (211, 211, 211));
    
     drawRect = SetDRect(n1,n2,strlen(txt)*10);
     DrawText(DeskTopDC,txt,strlen(txt),&drawRect,DT_SINGLELINE || DT_TOP);
    return 0;
    }
    Jusque là, pas de bugs, ça marche super
    Mais comment pourrais-je egalement créer une fonction pour afficher une image ?
    Est-ce possible ?
    Du coté de quelles fonctions je devrait regarder svp ?
    Un max de renseignements pourraient m'etre utiles car je me debrouille pas top top...
    Grand merci a vous en tout cas, et bonne continuation a ce forum qui pour l'instant m'a aidé a resoudre tous mes problemes...

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Les fonctions les plus simples pour tracer une image sont DrawState() (dessin d'une image) et BitBlt() (copie ou autre opération d'un DC vers un autre).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 68
    Points : 56
    Points
    56
    Par défaut
    Oki
    J'avais deja trouvé le DrawState et j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    EXPORT int APIENTRY_bmp(char *filename)
    {
      HDC DeskTopDC = GetDC(HWND_DESKTOP); 
      HBITMAP hBmp;
      hBmp=(HBITMAP)LoadImage(NULL,filename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
      hDC=GetDC(DeskTopDC);
      DrawState(hDC,NULL,NULL,(LPARAM)hBmp,NULL,0,0,0,0,DST_BITMAP);
      DeleteObject(hBmp);
      ReleaseDC(DeskTopDC,hDC);
    
    return 0;
    }
    Mais j'ai des erreurs et je sais pas trop comment les corriger...
    Mais si quelqu'un veux bien m'aider, ce serait super sympa


    EDITO :
    J'ai essayé de corriger un peu...
    ça semble marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    EXPORT int APIENTRY_WinMain_bmp(char *filename, double Coord, double Taille)
    {
    
    HDC DeskTopDC = GetDC(HWND_DESKTOP);
    HBITMAP hBmp;
    
    hBmp=(HBITMAP)LoadImage (NULL,filename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);    
    DrawState(DeskTopDC,NULL,NULL,(LPARAM)hBmp,NULL,Coord,Coord,Taille,Taille,DST_BITMAP); 
    DeleteObject(hBmp);
    
    }
    En revanche, est-ce possible ou non d'avoir une couleur de transparance ?

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Pour avoir une couleur transparente, j'ai bien peur qu'il faille utiliser une variante de BitBlt() (plus compliqué, donc) : TransparentBlt().
    À ne pas utiliser sur un Windows trop vieux, pour des raisons indiquées dans l'aide.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Afficher une image sur mon pdf via une fenetre ChildWindow.
    Par solaar dans le forum Silverlight
    Réponses: 0
    Dernier message: 21/05/2013, 19h16
  2. afficher une image dans une fenetre
    Par tchauman dans le forum WinDev
    Réponses: 4
    Dernier message: 30/03/2010, 15h34
  3. Afficher une image TIF dans une fenetre
    Par arnaud036 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 05/09/2007, 18h24
  4. swing afficher une image avant la fenetre
    Par gripin dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 26/04/2006, 00h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo