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

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

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.