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 598 fois - Téléchargée 34 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
cs_Papy67 Messages postés 51 Date d'inscription mercredi 25 décembre 2002 Statut Membre Dernière intervention 17 mars 2008
27 nov. 2006 à 12:47
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
victorcoasne Messages postés 1100 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 octobre 2012 7
8 oct. 2005 à 22:20
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
cs_Papy67 Messages postés 51 Date d'inscription mercredi 25 décembre 2002 Statut Membre Dernière intervention 17 mars 2008
8 oct. 2005 à 14:10
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.
victorcoasne Messages postés 1100 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 17 octobre 2012 7
8 oct. 2005 à 10:22
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 ?
cs_darkman2 Messages postés 121 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 31 décembre 2005
7 mai 2005 à 09:15
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.