Créer un tooltip en forme de bulle sous windows avec une image dans la bulle

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 346 fois - Téléchargée 32 fois

Contenu du snippet

astuce simple
pour mettre un Bitmap dans un tooltip en le personalisant
fond,couleur du texte ,police du texte avec ajout d'un titre

Source / Exemple :


void CreateMyTooltip (HWND hDlg,char *ToolTipTitre){
    unsigned int uid = 0;
     LPTSTR lptstr = ToolTipTitre;
    iccex.dwICC = ICC_WIN95_CLASSES|ICC_ANIMATE_CLASS|ICC_TAB_CLASSES;
    iccex.dwSize = sizeof(iccex);
    InitCommonControlsEx(&iccex);
    hwndTT = CreateWindowEx(WS_EX_TOPMOST|WS_EX_TOOLWINDOW ,TOOLTIPS_CLASS,NULL,WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP| TTS_BALLOON,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,hmain,NULL,wc.hInstance,NULL);
	HBITMAP bmp=LoadBitmap(wc.hInstance,(LPCSTR)204);
	SIZE sz;
	sz.cx=20;
	sz.cy=20;
    hlg=CreateWindowEx(0, "STATIC", NULL, WS_VISIBLE|WS_CHILD|SS_BITMAP,2, 2,sz.cx, sz.cy, hwndTT, NULL, wc.hInstance, NULL);
	SetBitmapDimensionEx(bmp,3,3,&sz);
	SendMessage(hlg, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)bmp);
	SetWindowPos(hwndTT,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
    GetClientRect (hDlg, &rect);
    ti.cbSize = sizeof(ti);
    ti.uFlags = TTF_SUBCLASS;
    ti.hwnd = hDlg;
    ti.hinst = wc.hInstance;
    ti.uId = uid;
    ti.lpszText = lptstr;
    ti.rect.left = rect.left;    
    ti.rect.top = rect.top;
    ti.rect.right = rect.right;
    ti.rect.bottom = rect.bottom;
   SendMessage(hwndTT, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);
   SendMessage(hwndTT, TTM_SETTIPTEXTCOLOR, (WPARAM) RGB(0,255,0),0);  
   SendMessage(hwndTT, WM_SETFONT, (WPARAM)GetStockObject(0x0E), MAKELPARAM(TRUE, 0));
   SendMessage(hwndTT, TTM_SETTITLE,  (WPARAM) (int) 1, (LPARAM)(LPCTSTR) titre);  
   SendMessage(hwndTT, TTM_SETTIPBKCOLOR,(WPARAM)RGB(204,51,153),0 );
   SendMessage(hwndTT, CCM_SETWINDOWTHEME,0,(LPARAM) (LPWSTR) "BUTTON"); 
  }

A voir également

Ajouter un commentaire

Commentaires

Messages postés
51
Date d'inscription
mercredi 25 décembre 2002
Statut
Membre
Dernière intervention
17 mars 2008

les amis je viens de deposer un exemple complet montrant comment faire :)
voici le lien : http://www.cppfrance.com/code.aspx?ID=40488

bye bonne prog a tous
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
5
Essaye de faire une fenetre avec ton code et corrige ce qui manque ou poste un zip car je n'arrive pas à compiler sous Dev !

Merci
Messages postés
51
Date d'inscription
mercredi 25 décembre 2002
Statut
Membre
Dernière intervention
17 mars 2008

absolument pas victorcoasne cela vient effectivement d'un de mes programmes .
bien vu et je dirais meme que cela vien du squelete principal de mon appli.
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
5
Bien mais j'ai l'impression qu'il manque du code car il y a des variables non déclarés.
Je me trompe ou pas en disant que tu l'as pris d'un de tes programmes ?
Messages postés
121
Date d'inscription
mardi 3 mai 2005
Statut
Membre
Dernière intervention
31 décembre 2005

t'as fait un bon boullo
ca va me servir e rendre le + optimal ....

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.